Nếu tôi chỉnh sửa tập lệnh của nhân viên web và làm mới trang, tập lệnh web worker là phiên bản được lưu trong bộ nhớ cache. Tôi khá tự tin rằng nó không phải là máy chủ web của tôi, bởi vì tôi có thể tải ngay các bản sao mới nhất của tất cả các tệp khác và thậm chí khởi động lại máy chủ web không khắc phục được sự cố. Nó chỉ tải phiên bản mới nhất của tập lệnh web worker nếu tôi khởi động lại chrome, điều này rất không hiệu quả, không cần phải nói! Nó không sửa chữa nó ngay cả khi tôi khởi động lại chrome. Tôi có thể làm gì để giải quyết vấn đề này không?Chrome không tải phiên bản mới nhất của tập lệnh web worker (chạy phiên bản đã lưu trong bộ nhớ cache)
Trả lời
Máy chủ web của bạn xác định cách một tài nguyên web cụ thể có thể lưu vào bộ nhớ cache và trình duyệt cố gắng tôn trọng các cài đặt đó, tài nguyên lưu trong bộ nhớ cache mà máy chủ web cho biết là không thể lưu vào bộ nhớ cache.
Nếu bạn muốn thay đổi điều đó, bạn có các tùy chọn này:
- Xóa cache trình duyệt bằng tay
- Tạm thời tắt bộ nhớ đệm của trình duyệt.
- Tạm thời thay đổi các thiết lập trên máy chủ web của bạn để hướng dẫn trình duyệt không để cache
- Override bộ nhớ cache cho chỉ này một trang web (shift-F5 trong một số trình duyệt) để buộc một tải lại nội dung mới
- Thêm tham số truy vấn đến URL của tập lệnh web worker mà bạn thay đổi mỗi khi bạn muốn nó tải phiên bản mới.
Bạn đã thử làm mới khó? Ctrl-r?
Ctrl + R thường xuyên làm mới, tôi nghĩ ... Ctrl + Shift + R, có thể? – Ryan
Trên Linux Chrome của tôi, tôi phải click chuột phải (hoặc nhấp chuột dài) vào nút tải lại và chọn "Empty Cache và tải lại cứng" để có được phiên bản mới nhất
nhấp chuột dài là gì? –
Để bấm lâu, giữ nút chuột cho đến khi menu mở ra. @ Brian: Tôi thậm chí còn không biết điều đó ở đó. Ctrl + F5 không hoạt động vì một lý do nào đó, nhưng điều này hoạt động hoàn hảo. –
Cảm ơn rất nhiều @ Brian, điều này giải quyết nó cho tôi! –
Trong trường hợp install
của bạn, trước khi cuộc gọi đến event.waitUntil
add:
if (self.skipWaiting) { self.skipWaiting(); }
Ngoài ra, bạn có thể làm theo quy trình làm việc phát triển này:
- Cấu hình máy chủ của bạn để phục vụ kịch bản Dịch vụ lao động của bạn như là non-cacheable (Cache-control: no-cache)
- Sau khi bạn thực hiện thay đổi để người lao động kịch bản dịch vụ của bạn:
- đóng tất cả nhưng một trong những tab chỉ để ứng dụng web của bạn
- hit shift-tải lại để bỏ qua các nhân viên dịch vụ để đảm bảo rằng các tab còn lại không phải là dưới sự kiểm soát của một nhân viên dịch vụ
- hit tải lại để cho các phiên bản mới hơn của Nhân viên dịch vụ c ontrol trang.
Thêm <script src="your_worker_path"></scripts>
vào đầu trang của bạn để buộc cập nhật bộ nhớ cache.
Bao gồm mã của nhân viên của bạn trong if(typeof window == "undefined"){...}
để tránh mã bắt đầu khi tải lại trang
Bạn phải đóng tất cả các tab mở trang này. Chỉ mở một lần 1 rồi nhấn Ctrl + Shift + R để làm mới thì bộ nhớ cache sẽ rõ ràng.
- 1. Làm cách nào để buộc trình duyệt làm mới phiên bản được lưu trong bộ nhớ cache của trang web
- 2. Ứng dụng Java được lưu trong bộ nhớ cache mãi mãi, không tải xuống phiên bản mới?
- 3. Bộ nhớ cache hoặc lưu trữ trong phiên?
- 4. hiển thị phiên bản webview được lưu trong bộ nhớ cache trên android
- 5. Trang bắt buộc phải tải lại từ máy chủ thay vì tải phiên bản đã lưu trong bộ nhớ
- 6. Lấy phiên bản mới nhất của tập tin từ TFS
- 7. Tải xuống phiên bản Chrome và Firefox cục bộ, C#
- 8. Có kho lưu trữ Debian nào để tải xuống phiên bản mới nhất của Eclipse không?
- 9. Lỗi nhấp nháy lạ mắt trong phiên bản mới nhất của trình duyệt Chrome
- 10. Cách kích hoạt các phiên bản EC2 và tải lên/chạy tập lệnh khởi động trên mỗi phiên bản?
- 11. Cập nhật lên phiên bản mới nhất từ dòng lệnh
- 12. Phiên bản mới hơn của JRE không tải soundbank nhưng phiên bản cũ hơn
- 13. Có API dịch vụ web để tìm phiên bản mới nhất của trình duyệt web không?
- 14. Bộ nhớ chia sẻ giữa nhiều phiên bản AWS EC2
- 15. Tìm phiên bản mới nhất được phê duyệt của SPListItem
- 16. Chỉ cho phép một phiên bản của tập lệnh python?
- 17. TFS nhận phiên bản mới nhất với các tệp mới
- 18. Cách chỉ định phiên bản MSBuild trong tập lệnh nant?
- 19. Lưu vào bộ nhớ cache của Chrome giống như trình duyệt điên
- 20. Phiên bản .NET nào là tập lệnh PowerShell của tôi?
- 21. Tải phiên bản ExtJS
- 22. Điểm ngắt sẽ không bị trúng. Một phiên bản khác của tệp tập lệnh đã được tải bởi quá trình gỡ lỗi
- 23. Làm cách nào để ngăn trình duyệt hiển thị phiên bản được lưu trong bộ nhớ cache của một trang?
- 24. Đang tải các phiên bản trước đó với phiên bản mới
- 25. Phiên bản hệ điều hành iPhone 3.0.1 (7A400) - không được hỗ trợ bởi phiên bản mới nhất của XCode
- 26. Phiên bản mới của một ứng dụng
- 27. Làm mới bộ nhớ cache của Akamai
- 28. Cài đặt mọi phiên bản hoặc phiên bản mới nhất là đủ?
- 29. Phiên bản WebSphere MQ Client mới nhất là gì?
- 30. Có bản xem trước 'Lấy phiên bản mới nhất' trong TFS không? (Giống như lệnh của VSS 'Get')
Làm mới khó của Chrome không làm mới nhân viên và vẫn sử dụng phiên bản được lưu trong bộ nhớ cache. – riv
Nếu bạn vẫn thấy rằng với câu trả lời này, serviceworker của bạn không được cập nhật, hãy kiểm tra xem nó có chứa lỗi hay không. Vì nếu serviceworker chứa lỗi javascript và không cài đặt được, phiên bản cũ sẽ vẫn được sử dụng. –
@BasGoossen - Trong trường hợp bạn không nhận ra, câu hỏi này là về công nhân web (tập lệnh chạy trong một chủ đề khác trong trang web), không phải nhân viên phục vụ (những thứ khác nhau). – jfriend00