Làm cách nào để tắt bộ nhớ đệm trên Firefox?


143

Trong quá trình phát triển, tôi phải "xóa bộ nhớ cache" trong Firefox mọi lúc để làm cho nó sử dụng phiên bản mới nhất của các tệp JavaScript.

Có một số loại cài đặt (about: config) để tắt hoàn toàn bộ đệm ẩn cho các tệp JavaScript không? Hoặc, nếu không, cho tất cả các tập tin?

Câu trả lời:


229

Nhập "about: config" vào thanh địa chỉ Firefox và đặt:

browser.cache.disk.enable = false
browser.cache.memory.enable = false

Nếu phát triển cục bộ hoặc sử dụng thuộc tính tệp kê khai mới của HTML5, bạn cũng có thể phải đặt các mục sau trong about: config -

browser.cache.offline.enable = false

Làm thế nào tôi không biết về viên ngọc nhỏ này? Tất cả các loại goodies trong khoảng: config!
ABrowne

2
mạng.http.use-cache không có cho tôi. Thay đổi browser.cache.offline.enable không tạo ra sự khác biệt đối với tôi.
Curtis

1
Tôi không nghi ngờ đây là một câu trả lời hay, nhưng dường như nó không còn đúng trong các bản dựng firefox mới nhất (hiện tại tôi đang sử dụng phiên bản dành cho nhà phát triển 47.0a2). Vô hiệu hóa bộ nhớ đệm trong cài đặt nhà phát triển web là có hiệu quả đối với tôi mặc dù.
JosephStyons

61

Các nhà phát triển Web Toolbar có một tùy chọn để vô hiệu hóa bộ nhớ đệm mà làm cho nó rất dễ dàng để chuyển nó vào và tắt khi bạn cần nó.


1
CTRL-F5 hoặc giữ phím shift trong khi nhấp vào nút Tải lại là những gì tôi đã làm trong quá khứ, nhưng tính năng "Tắt bộ nhớ cache" của Thanh công cụ phát triển web là một cách tuyệt vời để làm điều đó. Bạn không phải tắt hoàn toàn bộ nhớ cache của firefox theo cách đó.
Jon Onstott

1
Bạn nên nhớ kích hoạt bộ đệm sau khi thử nghiệm, mặc dù. ;)
neurolabs

1
@Shanimal, Nó hoạt động với tôi trong 14.0.1, bạn có thể muốn gỡ cài đặt / cài đặt lại hoặc một cái gì đó.
Lucas

@Lu doh! Các mục trên máy chủ mà tôi đang làm việc là bộ nhớ đệm, nhưng tôi quên xóa bình luận của mình ... Cảm ơn.
Tối

1
Điều này không còn hoạt động nữa cho đến khi chrispederick sửa một vài thay đổi firefox mới trong phiên bản mới nhất. Tôi sẽ đi với giải pháp about: config tốt hơn cho các nhà phát triển.
Ligemer

12

Bạn đã thử sử dụng CTRL- F5để cập nhật trang chưa?


6
Tôi thực sự nghi ngờ rằng điều này hoạt động đáng tin cậy, ít nhất là với sự hiện diện của iframe và bộ khung.
Thilo

2
chính xác, nó sẽ không luôn tải lại JS / CSS trong iframe, nhưng trong Firefox, ít nhất bạn có thể bật khung đó ra một tab mới và tải lại ở đó.
scunliffe

Tôi luôn sử dụng Ctrl-F5 .... sau đó tôi thấy rằng nó sẽ không tải các phiên bản mới nhất của tệp js mà tôi đang làm việc :( Cũng ở trong iframe (Tôi biết, iframe là ma quỷ, không phải là lựa chọn của tôi ).
Gromer

Ctrl-F5 không đặt lại bộ đệm của các tệp javascript. những gì nó làm (chủ yếu) là để xóa phiên và cookie của bạn, nhưng không phải là javascript và bảng định kiểu được lưu trong bộ nhớ cache
AceMark

10

Không có tùy chọn cụ thể để chỉ tắt bộ đệm ẩn cho JavaScript, bạn sẽ phải tắt hoàn toàn bộ đệm.

FireBug có một tùy chọn để vô hiệu hóa bộ đệm của trình duyệt trên menu thả xuống của tab Mạng.


8

Trên cùng một trang bạn muốn tắt bộ nhớ đệm hãy làm điều này: FYI: phiên bản đang hoạt động là 30.0

Bạn có thể :

mở thanh công cụ phát triển web nhà phát triển web mở

và chọn tắt bộ nhớ cache

Sau đó, nó sẽ tải lại trang của chính nó (bạn đang bật) và mọi thứ đều được thu thập và mọi yêu cầu xa hơn cũng được nhận lại mỗi lần và bạn có thể giữ cho nhà phát triển web luôn mở để theo dõi và đảm bảo luôn luôn bật (kiểm tra) .


8

Công cụ dành cho nhà phát triển Firefox 48

Cho phép bạn tắt bộ đệm chỉ khi hộp công cụ mở, điều này hoàn hảo cho phát triển web:

  • F12
  • hộp số ở góc trên bên phải
  • cuộn xuống trên cùng Cài đặt nâng cao
  • kiểm tra "Vô hiệu hóa bộ nhớ cache (khi hộp công cụ mở)"

nhập mô tả hình ảnh ở đây

https://stackoverflow.com/a/27397425/895245 có nội dung tương tự, nhưng định vị đã thay đổi một chút kể từ đó.


1
Cảm ơn ... có thông tin ngoài đó (và trong chuỗi này) về cài đặt mạng.http.use-cache thành false ... nhưng trong phiên bản FF (53) của tôi, cài đặt đó không còn tồn tại ... Kỹ thuật này vượt trội hơn nhiều dù sao.
mike gặm nhấm

7

Nếu bạn đang làm việc với mã phía máy chủ, bạn có thể tạo một số ngẫu nhiên và nối nó vào cuối src theo cách sau ....

src = "yourJavascriptFile.js? RandomNumber = 434534"

với số ngẫu nhiên được tạo ngẫu nhiên mỗi lần.


Đây là giải pháp duy nhất có hiệu quả với tôi ngoài việc xóa bộ nhớ cache của trình duyệt theo cách thủ công mỗi khi tôi làm mới.
Curtis

4

Tôi biết tôi đang hồi sinh một câu hỏi cổ xưa, nhưng tôi đã cố gắng giải quyết vấn đề này ngày hôm nay và có một giải pháp thay thế. Việc lưu trữ bộ nhớ cache khi tôi muốn kiểm tra không thực sự chấp nhận được đối với tôi và như những người khác đã đề cập, làm mới cứng (ctrl + shift + r) không phải lúc nào cũng hoạt động.

Thay vào đó, tôi đã chọn đặt phần sau vào tệp vhost.conf của mình (cũng có thể được thực hiện trong .htaccess) trên môi trường dev của tôi:

<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>

Trên môi trường dev của tôi, điều này đảm bảo rằng js và css luôn được lấy. Ngoài ra, nó không ảnh hưởng đến phần còn lại của trình duyệt của tôi và nó cũng hoạt động cho tất cả các trình duyệt, vì vậy việc kiểm tra chrome / tức là vv cũng dễ dàng.

Tìm thấy đoạn trích ở đây, một số thủ thuật apache tiện dụng khác: http://www.askapache.com/htaccess/USE-http-headers-with-htaccess.html#prevent-caching-with-htaccess

Để đảm bảo rằng khách hàng của tôi luôn thấy phiên bản mới nhất được sản xuất, chúng tôi tăng chuỗi truy vấn trên js bao gồm trên mỗi bản cập nhật, nghĩa là

jquery.somefile.js?v=0.5

Điều này buộc các trình duyệt của khách hàng của tôi cập nhật bộ đệm cục bộ của họ khi họ thấy một chuỗi truy vấn mới, nhưng sau đó lưu lại bản sao mới cho đến khi tệp được cập nhật lại


3

Chiến lược tốt nhất là thiết kế trang web của bạn để xây dựng một URL duy nhất cho các tệp JS của bạn, được đặt lại mỗi khi có thay đổi. Bằng cách đó, nó lưu trữ khi không có thay đổi, nhưng tải lại ngay lập tức khi có bất kỳ thay đổi nào xảy ra.

Bạn cần điều chỉnh cho các công cụ môi trường cụ thể của mình, nhưng nếu bạn đang sử dụng PHP / Apache, đây là một giải pháp tuyệt vời cho cả bạn và người dùng cuối.

http://verens.com/archives/2008/04/09/javascript-cache-probols-solve/


3

Bạn có thể sử dụng CTRL- F5để tải lại bỏ qua bộ đệm.

Bạn có thể đặt tùy chọn trong firefox không sử dụng bộ đệm

network.http.use-cache = false

Bạn có thể thiết lập máy chủ web của mình để gửi tiêu đề không có bộ nhớ cache / Hết hạn / Bộ điều khiển bộ đệm cho các tệp js.

Dưới đây là một ví dụ cho máy chủ web apache.


đó là shift-f5 hay ctrl-f5?
Thilo

3

Nếu bạn sử dụng FireBug, trên menu thả xuống của tab Mạng, có một tùy chọn để vô hiệu hóa bộ đệm của trình duyệt.

nhập mô tả hình ảnh ở đây


Firebird bị ngưng.
K7AAY

1

Có những ưu và nhược điểm đối với hai giải pháp cuối cùng được đăng, nhưng cả hai đều là giải pháp tuyệt vời của IMHO.

  1. Bạn có thể hoặc không muốn ID phiên của mình được nhúng trong url của mình như thế để bảo mật chặt chẽ hơn. Nhưng trong sự phát triển không quan trọng, nhưng nếu bạn quên loại bỏ nó thì sao? Điều đó cũng thực sự hiệu quả? Bạn sẽ không cần một cái gì đó giống như một trình tạo số tuần tự (số lần truy cập được lưu trữ trong phiên hoặc thậm chí có thể chỉ khi 1 thì 0, nếu 0 thì 1)?

  2. Thêm id phiên (hoặc bất kỳ trình sắp xếp chuỗi nào) có nghĩa là bạn cần nhớ để thêm nó vào mọi tài nguyên bạn không muốn lưu trữ. Một mặt điều đó tốt hơn bởi vì bạn chỉ có thể bao gồm id phiên của mình với tài nguyên mà bạn đang tích cực phát triển và thử nghiệm. Mặt khác, nó có nghĩa là bạn phải làm điều đó và bạn phải nhớ loại bỏ nó để sản xuất.

  3. Sửa đổi tệp vhost.conf hoặc tệp .htaccess thực hiện thủ thuật độc đáo mà không cần phải nhớ thêm và xóa id phiên. Nhưng nhược điểm là hiệu suất của tất cả các tài nguyên js và css sẽ bị ảnh hưởng và nếu bạn có các tệp lớn, điều đó sẽ làm bạn chậm lại.

Cả hai dường như là giải pháp tuyệt vời, thanh lịch - phụ thuộc vào nhu cầu của bạn.


1

Tôi sử dụng CTRL- SHIFT- DELETEkích hoạt tính năng bảo mật, cho phép bạn xóa bộ nhớ cache, đặt lại cookie, v.v., cùng một lúc. Bạn thậm chí có thể cấu hình nó để nó chỉ LÀM, thay vì bật lên một hộp thoại yêu cầu bạn xác nhận.


1

Trong các phiên bản cao hơn của Firefox, như Nightly, có một tùy chọn có tên là "vô hiệu hóa bộ đệm", bạn có thể tìm thấy nó bằng cách nhấp vào thiết bị. Và các tùy chọn đó chỉ hoạt động trong phiên hiện tại, có nghĩa là khi bạn đóng thanh tra và khởi động lại nó, bạn phải kiểm tra lại nếu bạn muốn bắt bị vô hiệu hóa.


Tôi ước có một cách để vô hiệu hóa bộ nhớ cache trên toàn cầu. Thật khó chịu khi phải kiểm tra nó mỗi khi tôi mở thanh tra.
Carlos Garcia

0

Sau 2 giờ duyệt tìm các lựa chọn thay thế khác nhau, đây là thứ phù hợp với tôi.

Yêu cầu của tôi là vô hiệu hóa bộ nhớ đệm của các tệp js và css trong ứng dụng web được bảo mật mùa xuân của tôi. Nhưng đồng thời lưu trữ các tệp này "trong" một phiên cụ thể.

Vượt qua một id duy nhất với mỗi yêu cầu là một trong những cách tiếp cận được khuyên dùng.

Và đây là những gì tôi đã làm: - Thay vì

<script language="javascript" src="js/home.js"></script>

Tôi đã sử dụng

<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>

Bất kỳ khuyết điểm cho phương pháp trên đều được chào đón. Vấn đề an ninh ?


0

Trong firefox 45, các tùy chọn bộ đệm đĩa có thể được đặt bằng cách thay đổi giá trị của: browser.cache.disk.enable

Giá trị có thể được đặt trên trang "about: config".

Trên http://kb.mozillazine.org/ về: config_entries#Browser Tôi đã tìm thấy mô tả sau cho "browser.cache.disk.enable":

Đúng (mặc định): Sử dụng bộ đệm đĩa, tối đa dung lượng được chỉ định trong browser.cache.disk.capacity Sai: Tắt bộ đệm đĩa (có tác dụng tương tự như cài đặt browser.cache.disk.capacity thành 0)


0

Trước hết, điều này có thể được thực hiện dễ dàng, ví dụ như bởi PHP để buộc trình duyệt gia hạn các tệp dựa trên ngày bộ đệm (thời gian hết hạn). Nếu bạn chỉ cần nó cho nhu cầu thử nghiệm, thì hãy thử sử dụng ctrl + shift + del để xóa tất cả bộ đệm cùng một lúc trong trình duyệt Firefox. Giải pháp thứ ba là sử dụng nhiều tiện ích bổ sung thoát cho Firefox để xóa bộ nhớ cache dựa trên các dòng thời gian.

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.