2010-11-03 30 views

Trả lời

30

Tùy chọn cache không phải là bộ nhớ cache đặc biệt mà jQuery duy trì, vì vậy có thể đó là một chút nhầm lẫn.

  • cache: false gắn thêm một dấu thời gian đến URL được yêu cầu, vì vậy nó lực lượng trình duyệt để lấy một bản sao tươi, đó là chi tiết của một bộ nhớ cache-breaker.
  • cache: truekhông có gì, bộ nhớ cache của trình duyệt gốc được để lại để thực hiện bất kỳ việc gì sẽ làm ở đây.

Nó không phải là một điều cụ thể về jQuery, nó chỉ là cách các trình duyệt khác nhau chọn để cache một phản ứng hay không. If your cache headers are set correctly yêu cầu trình duyệt để lưu vào bộ nhớ cache, sau đó cần. Tuy nhiên, IE thích lưu bộ nhớ cache ra khỏi yêu cầu ngay cả khi không có hướng dẫn tiêu đề để làm cho ... đó là có khả năng là hành vi bạn đang thấy. Nếu đó là hành vi bạn muốn mặc dù, hãy thêm tiêu đề kiểm soát bộ nhớ cache (xem liên kết ở trên) vào các trang của bạn mà bạn cũng muốn lưu trong các trình duyệt khác.

+1

Tôi nghĩ rằng booleans của bạn là ngược. 'cache: false' thêm chuỗi truy vấn dấu thời gian, trong khi' cache: true' mặc định là hành vi của trình duyệt. – RANGER

+0

@cbh - oops bạn chính xác, cập nhật! –

+0

Tại sao op chấp nhận câu trả lời? Tôi gặp vấn đề tương tự với Chrome. Không có vấn đề gì tôi làm tôi không thể có được một 304 cho một yêu cầu ajax ngay cả khi máy chủ gửi Etag và Last-Modified tiêu đề chính xác. Tôi cũng nhận được một 304 khi yêu cầu URL trực tiếp từ thanh địa chỉ nhưng không phải từ ajax, do đó, nó rõ ràng không phải là một vấn đề máy chủ. – cap

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