2016-03-21 14 views
8

Tôi đang làm việc trên dự án Laravel 5.1, sử dụng rất nhiều cuộc gọi ajax trả về các khối html.Laravel 5.1 Bộ nhớ đệm phản hồi ajax hướng đối tượng

Để tối ưu hóa tốc độ của trang web, tôi muốn triển khai bộ nhớ cache phản hồi riêng tư và công khai. điều này hoạt động tốt bằng cách sử dụng mã sau:

 return response() 
     ->json($result) 
     ->header('Cache-Control', 'public, max-age=300'); 

Tuy nhiên, sử dụng nó theo cách này sẽ không giữ trong các đối tượng tài khoản được cập nhật trong vòng 300 giây.

Có khả năng cho phép tôi xóa bộ đệm phản hồi của yêu cầu, nếu và chỉ khi các đối tượng trả về đã được cập nhật không?

+0

Để biết rằng chúng đã được cập nhật, bạn sẽ phải gửi yêu cầu thực tế. Trừ khi bạn tạo một loại trình kích hoạt nào đó khi giá trị được cập nhật cho bộ nhớ cache không được sử dụng nữa –

+0

Yup, tôi có thể sử dụng thẻ E, với băm md5 của trạng thái được cập nhật. nhưng tôi muốn giữ điều này như một phương sách cuối cùng, và tìm kiếm một cách thanh lịch trong thời gian có ý nghĩa. – Frederiek

Trả lời

0

Có thể bạn có thể thử bộ đệm ẩn phía máy chủ với thứ gì đó như dưới đây. xin lỗi này là thô

function sometest(User $user) 
{ 

    /** . . .conditions to check if some data has changed . . . **/ 


    $jsonResponse = Cache::remember(Auth::id() . "_sometest", 300, function() use ($user) 
    { 
     $result = $user->all(); //get result here 

     return $result; 
    }); 

    return response()->json($jsonResponse); 
} 

Bạn có thể đọc về đây Cache

bạn cũng có thể thử

Các vấn đề liên quan