Một thiết lập lại IIS sẽ buộc các mục được lưu trong bộ nhớ cache được gửi lại?


10

Tôi đang cố gắng phát triển một chiến lược để xử lý các tệp javascript, css, hình ảnh, v.v. khi chúng tôi phát hành bản cập nhật cho trang web của mình. Trước khi tôi bắt đầu triển khai số phiên bản trên các tệp javascript, tôi đã tự hỏi liệu việc đặt lại IIS sau mỗi lần phát hành có khiến cho các tệp được lưu trong bộ nhớ cache có hiệu quả không.

Câu trả lời:


8

Khi bạn thực hiện IISReset, bộ đệm IIS sẽ bị xóa và sau đó sẽ bắt đầu được xây dựng lại sau khi nó khởi động lại khi có yêu cầu của khách hàng. Nếu bạn cập nhật một tệp thì tệp được lưu trong bộ nhớ cache cũ sẽ trở nên cũ và IIS sẽ phục vụ tệp được cập nhật và cập nhật bộ đệm với tập tin mới.

IISReset (mặc dù khắc nghiệt) sẽ xóa bộ đệm IIS nhưng nó sẽ không làm gì với bộ nhớ cache cục bộ trong proxy hoặc máy khách. Có thể bạn vừa có thuật ngữ trộn lẫn một chút, nhưng không có bất kỳ khái niệm "bực bội" nào khi nói đến bộ nhớ đệm. Đó là tất cả yêu cầu dựa trên. Nếu một khách hàng yêu cầu một cái gì đó và nó được tìm thấy trong bộ đệm thì nó sẽ được phục vụ từ bộ đệm. Bạn sẽ cần buộc hết hạn nội dung trên các tệp của mình nếu bạn sẽ duy trì cùng tên tệp.


Cảm ơn đã giúp đỡ. Xin vui lòng tha thứ cho sự thiếu hiểu biết của tôi trong lĩnh vực này ... Tôi đang bị lẫn lộn giữa bộ đệm của máy khách và IIS. Thuật ngữ 'phẫn nộ' là để chỉ máy chủ gửi nội dung thay vì được lấy từ bộ đệm của khách hàng.
DaveK

@Dave không phải lo lắng gì cả, rất vui vì nó đã giúp! Thêm một bit, nếu một tệp nằm trong bộ đệm của máy khách hoặc bộ đệm proxy ngược dòng thì máy chủ thậm chí sẽ không nhận được yêu cầu trừ khi mục được lưu trong bộ nhớ cache cũ và có sẵn phiên bản mới hơn từ máy chủ.
squillman

3

Không, bộ nhớ đệm của khách hàng dựa trên thời gian hết hạn nội dung.


3

Khi bạn sửa đổi một tệp javascript, bạn cần TẤT CẢ các máy khách đang chạy ứng dụng web để nhận tệp mới, thì rõ ràng là "gần đây".

Để mỗi máy khách nhận được từ máy chủ tệp mới, bạn chỉ cần đưa vào tập lệnh / tập lệnh của javascript của bạn trong trang web "?version=1".

Nó chỉ cần một tham số có thể ?blue=hellohoặc ?v=1234155nó giống như bạn muốn. Điều quan trọng là sử dụng một giá trị khác nhau mỗi khi bạn thay đổi javascript. "?version=1"cho thay đổi đầu tiên, "?version=2"cho thay đổi thứ hai, nó là thực tế và duy nhất để biết giá trị tiếp theo. Ngoài ra, bạn có thể sử dụng GUID nếu bạn muốn: "?version=4747b320-62ce-11cf-a5d6-28db04c10777"hoặc bạn có thể sử dụng ngày và giờ "?version=20130220175025"cho 2013/02/20 17:50:25.

Ví dụ 1

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?version=1"></script>

Ví dụ # 2

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?k=4747b320-62ce-11cf-a5d6-28db04c10777"></script>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.