Bộ nhớ đệm Chrome so với bộ đệm đĩa


96

Tôi quan tâm đến bộ nhớ đệm chrome và bộ nhớ đệm đĩa? Tôi sử dụng webpack, plugin khối phổ biến và tạo tất cả các tệp của mình bằng chunkhash.

Bộ nhớ khác với bộ nhớ đệm trên đĩa như thế nào. Khi tôi tải lại trang của mình, một số tệp được tải từ bộ nhớ cache của bộ nhớ và một số từ bộ nhớ cache trên đĩa (bó.js và image.jpg từ bộ nhớ cache và css từ bộ nhớ cache trên đĩa). Đôi khi nó khác. Chúng ta có thể kiểm soát điều đó, chọn những gì được tải từ đâu? Bộ nhớ đệm có vẻ nhanh hơn bộ nhớ đệm trên đĩa.


1
Xin chào Igor, Điều này có gây ra sự cố tải với webpack không? Bạn đã giải quyết điều đó như thế nào?
Vui mừng

1
Không có vấn đề gì. Đây chỉ là một chức năng bộ nhớ cache của trình duyệt lưu trữ các tệp gói webpack vào bộ nhớ cache.
Igor-Vuk

Xin chào Igor, tôi thấy đây là sự cố khi một số tệp đi kèm được tải từ đĩa và một số tệp từ bộ nhớ. Nó ném ra một lỗi JSONP, khi điều đó xảy ra. Điều này chỉ xảy ra trong một số trường hợp hiếm hoi.
Vui mừng

Câu trả lời:


74

Giống như tên của họ đã nói:

"Bộ nhớ đệm" lưu trữ và tải tài nguyên đến và đi từ Bộ nhớ (RAM). Vì vậy, điều này nhanh hơn nhiều nhưng nó không liên tục. Nội dung có sẵn cho đến khi bạn đóng Trình duyệt.

"Disk Cache" là liên tục. Các tài nguyên được lưu trong bộ nhớ cache được lưu trữ và tải đến và từ đĩa.

Kiểm tra đơn giản: Mở Mạng / Công cụ dành cho nhà phát triển Chrome. Tải lại một trang nhiều lần. Cột bảng "Kích thước" sẽ cho bạn biết rằng một số tệp được tải "từ bộ nhớ cache". Bây giờ hãy đóng trình duyệt, mở lại Công cụ / Mạng của Nhà phát triển và tải lại trang đó. Tất cả các tệp được lưu trong bộ nhớ cache đều được tải "từ bộ nhớ cache trên đĩa" ngay bây giờ, vì bộ nhớ cache của bạn trống.


4
Vâng, tôi không biết nó là đơn giản.
Faizan Anwer Ali Rupani

27
làm thế nào để trình duyệt xác định nội dung nào cần lưu trữ trong Bộ nhớ cache so với Bộ nhớ cache trên đĩa?
chharvey

10
chúng ta có thể cấu hình những gì nên được lưu trong bộ nhớ đệm không?
Igor-Vuk

1
Tôi có một số lần lặp lại trên ứng dụng góc cạnh của mình được tải từ đĩa khi tôi chạy nó cục bộ, trên các tệp của đề tài sản xuất hoàn toàn không được lưu vào bộ nhớ đệm. Chỉ bộ đệm từ bộ nhớ hoạt động trên môi trường sản xuất. Bạn có biết những gì có thể gây ra nó?
Rafael Andrade

@RafaelAndrade Hãy nhớ rằng góc cạnh cung cấp nhiều môi trường (trong src / environment / *. Ts). môi trường.prod.ts xác định môi trường xây dựng sản xuất của bạn trong đó môi trường.ts xác định môi trường phát triển cục bộ của bạn. Trong phát triển cục bộ, bạn hầu như không muốn có tệp được lưu trong bộ nhớ cache để các thay đổi cục bộ luôn áp dụng cho ứng dụng của bạn.
Ruwen

14

Chrome triển khai bộ nhớ đệm ở nhiều cấp độ trừu tượng. Ở cốt lõi có bộ đệm HTTP (Trình duyệt) - một phần mềm phụ trợ cho các cơ chế bộ nhớ đệm khác. Nói chung bộ nhớ đệm có thể được chia thành:

  • Bộ đệm HTTP
  • Bộ nhớ đệm của nhân viên dịch vụ
  • Bộ nhớ cache nhấp nháy

Bộ đệm HTTP

Mọi yêu cầu được thực hiện qua mạng đều được hỗ trợ bởi HTTP Cache tuân theo RFC . Khi được yêu cầu lần đầu tiên, bộ nhớ cache được ghi đè. Tài nguyên được khóa bởi url gốc.

Service Worker Cache

Để xử lý các lỗi kết nối mạng một cách thông minh, bạn có thể sử dụng Service worker . Bộ nhớ đệm và bộ nhớ đệm sẽ được lấy lại từ đĩa.

Nháy mắt Cache

Blink sử dụng Http Cache làm phụ trợ trong hai chế độ tạo - trong bộ nhớ và đơn giản (hệ thống tệp). Cái nào được sử dụng tùy thuộc vào giới hạn được đặt trên toàn cầu cho dung lượng bộ nhớ mà chúng có thể chiếm trong bộ nhớ đệm. Ngoài ra, bộ nhớ cache của trình kết xuất hiện tại được chia sẻ nhiều nhất. Những gì được lưu trong bộ nhớ cache là phông chữ, hình ảnh và tập lệnh. Nếu mức sử dụng bộ nhớ chung đạt đến một số ngưỡng được chỉ định thì phần phụ trợ hệ thống tệp sẽ được sử dụng.

Buộc trong bộ nhớ đệm

Nếu bạn muốn tệp của mình được phục vụ từ cơ chế mặc định ghi đè bộ nhớ, bạn có thể triển khai Service Worker của riêng mình. Sử dụng File Api, các tài nguyên có thể được đọc và lưu trữ vào đối tượng trong bộ nhớ. Sau đó, sự kiện tìm nạp ghi đè sẽ ngăn chặn việc đọc mạng và tệp có nội dung được cung cấp từ đối tượng chung này.

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.