Chỉ làm mới các tệp JavaScript trong Firefox và Chrome


64

Tôi muốn chỉ xóa các tệp JavaScript khỏi trình duyệt web của mình (Firefox và Chrome). Tôi đang thực hiện sửa lỗi JavaScript và thật khó chịu khi JS của tôi sẽ không được cập nhật bất cứ khi nào tôi thay đổi các tệp JS của mình. Điều duy nhất tôi có thể làm bây giờ là xóa cookie của mình, nhưng làm điều đó sẽ xóa tất cả lịch sử duyệt web của tôi.

Làm cách nào tôi có thể xóa / làm mới các tệp JavaScript đã được tải vào trình duyệt của mình mà không xóa các tệp khác?

Câu trả lời:


42

Tôi làm điều này bản thân mình để phát triển. Tôi sử dụng Ctrl+ F5. Nó giống như một sự làm mới lực lượng. Điều này làm mới trang bao gồm tải xuống lại bất kỳ tệp JavaScript hoặc tệp CSS được tham chiếu nào ngay cả khi chúng được lưu trữ.

Nó sẽ KHÔNG xóa bất cứ điều gì khác như lịch sử duyệt web của bạn.

Nhưng xin lưu ý rằng mặc dù tôi biết điều này hoạt động trong Firefox và có lẽ là Internet Explorer, tôi không chắc liệu Ctrl+ có F5hoạt động theo cách tương tự trong Chrome hay không.

Ngoài ra, iegik nói:

Trên một số trình duyệt, bạn có thể sử dụng ` Ctrl+ Shift+ Rđể thực hiện cùng một tác vụ.


Tuyệt quá! Tôi thay đổi câu trả lời được chấp nhận cho bạn vì câu trả lời của bạn là một giải pháp đơn giản hơn
Graviton

Tôi đánh giá cao điều đó ... Nhưng xin lưu ý rằng mặc dù tôi biết điều này hoạt động trong Firefox và có lẽ là IE, tôi không chắc liệu CTRL-F5 có hoạt động tương tự trong Chrome hay không.
7wp

2
Tương tự với Chrome 21 beta trên Win7 - làm mới trang với ctrl-f5 không yêu cầu lại tệp JS (Tôi đang sử dụng Charles để xác minh hai lần).
Artem Russakovskii

1
Trên thực tế, chrome xử lý ctrl + f5 đầu tiên như làm mới bình thường theo thiết kế, ctrl + f5 tiếp theo (sau đó là một) trong thời gian ngắn sẽ buộc tải lại tất cả các nguồn
Zeela

1
Đối với Chrome, F12 và nhấp chuột phải vào nút tải lại. superuser.com/questions/220179/ từ
Cees Timmerman

50

Với Chrome:

Bắt đầu với Chrome 15, mở Công cụ dành cho nhà phát triển, nhấp vào bánh răng ở phía dưới bên trái màn hình và chọn hộp kiểm Tắt bộ đệm .

Vô hiệu hóa bộ nhớ cache trong Chrome 15 trở lên

Bằng cách này, bạn sẽ chắc chắn rằng các tài nguyên luôn được tải lại từ máy chủ và bạn không phải xóa bộ nhớ cache theo cách thủ công, điều này cũng có thể xóa dữ liệu được lưu trong bộ nhớ cache cho các trang web không liên quan.


Cảm ơn về mẹo - Tôi vừa kiểm tra và tùy chọn đó cũng có trong Chrome 14.
keybits

Thiên tài! Đó là một phát hiện tuyệt vời.
Randomblue

Rực rỡ, tôi đã tìm kiếm điều này.
Artem Russakovskii

... Và đừng quên bỏ chọn tùy chọn sau khi bạn hoàn thành nó.
Halil Özgür

Ở lần thứ hai, có vẻ như các tùy chọn này chỉ hoạt động khi hiển thị các devtools: twitter.com/ChromiumDev/status/227356682890670080 (từ stackoverflow.com/a/7000899/372654 )
Halil Özgür

8

Tôi không đồng ý với @ 7wp. Vì một số người dùng cuối của bạn không quen với chức năng Ctrl+ F5và một số người thậm chí không biết về sự khác biệt giữa các trình duyệt và thậm chí sự tồn tại của các trình duyệt khác (ví dụ như người lớn tuổi), bạn nên buộc trình duyệt tải xuống một bản sao mới của các tệp JS / CSS.

Giải pháp tốt nhất ở đây là thêm dấu thời gian ở cuối tên tệp .js / .css hoặc thêm phiên bản svn cũng là một ý tưởng tuyệt vời.

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>

5

Bạn có thể muốn thử chỉ xóa bộ nhớ cache của mình chứ không phải toàn bộ trình duyệt, lịch sử, cookie, mật khẩu, dữ liệu biểu mẫu đã lưu và không có gì (mặc định).

Trong Firefox 3.5, đi đến

Công cụ »Xóa lịch sử gần đây ...

Sau đó, đảm bảo chỉ "Cache" được chọn trước khi chọn "Xóa ngay".

Trong Chrome (không biết bạn đang sử dụng phiên bản cụ thể nào, khi tôi sử dụng bản dựng dev), hãy truy cập

Biểu tượng cờ lê (Công cụ) »Tùy chọn» Tab Nội dung cá nhân »Xóa dữ liệu duyệt web ...

Một lần nữa, đảm bảo chỉ "Làm trống bộ đệm" được chọn.

Ngoài ra, bạn có thể thử mở một phiên Riêng tư mới trong cửa sổ Firefox hoặc Ẩn danh trong Chrome; không nên lưu trữ bất kỳ tệp nào (bao gồm các tệp .JS) mà bạn tự động tải xuống và xử lý khi duyệt.


Ẩn danh có lẽ là cách để sử dụng Chrome.
mdoar

1

Tôi đã sử dụng một mẹo nhỏ trên một trang web mà tôi đang làm việc ... vì những lý do tương tự như bạn. Tôi thực hiện các thay đổi nhỏ và tải mã JavaScript bằng mã JavaScript và muốn đảm bảo rằng tôi luôn làm việc với tập lệnh hiện tại (không được lưu trong bộ nhớ cache).

Hãy thử tạo mã JavaScript mà bạn đang tải vào tệp PHP ... chỉ cần đặt <?php ?>ở đầu và đặt vào phần mở rộng của .php.

var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");

// The Date added to the file doesn't effect the results but
// helps Internet Explorer be sure to refresh the data and
// not use cache

var d = new Date();

var t = d.getTime();

fileref.setAttribute("src", filename + ".php?date=" + t);

fileref.setAttribute("id", filename);

Vì tên thay đổi, Internet Explorer nghĩ rằng đó là một tệp mới;)


1
Không cần thay đổi tên thành '.php'. Nếu bạn đặt 'filename.js? T =' + t thì kết quả là như nhau. Bạn cũng có thể làm điều đó với '.css'. Tất cả các hệ thống sản xuất của chúng tôi sử dụng thủ thuật này để xác nhận rằng khách hàng sử dụng đúng tệp nội dung.
Leonel Martins

1
Lưu ý, chúng tôi có xu hướng sử dụng số sửa đổi SVN thay vì ngày / giờ. Bằng cách đó, chúng tôi nhận được các lợi ích lưu trữ và chỉ làm mới khi chúng tôi thực sự cam kết.
Groo

Cám ơn rất nhiều! Thủ thuật này hoàn toàn trượt tâm trí của tôi. Tôi đã chiến đấu với vấn đề này trong nhiều ngày và điều này sẽ giúp tôi. Tôi chỉ đặt phần này ở cuối url: "? <? Php echo time ()?>"
thrashr888 17/03

1

Trong Chrome, bạn chỉ cần nhấn Ctrlvà nhấp vào nút làm mới. Tôi tình cờ phát hiện ra điều này.


Điều này không làm mới toàn bộ trang, tôi không nghĩ rằng điều này chỉ làm mới Javascript mà thôi.
Ivo Flipse

1

Tôi mở tệp JavaScript trong một tab riêng biệt, Shift+ refresh, xác minh rằng tôi đang thấy những thay đổi mới nhất, sau đó Shift+ làm mới trang thực tế (thực tế, trong trường hợp của tôi, khung trong một bộ khung, dường như làm cho vấn đề tồi tệ hơn). Điều này hoạt động gần như tất cả các thời gian.


0

Tôi đã không sử dụng nó cho mình, nhưng "Nút xóa bộ nhớ cache" bổ trợ của Firefox có thể được sử dụng. Tôi đã đọc qua tài liệu của họ, vì vậy tôi không chắc liệu nó có xóa lịch sử duyệt web của bạn không.


0

Chuyển đến cài đặt nội dung trong Chrome, tắt JavaScript và lưu.

Sau đó, kích hoạt lại JavaScript.


0

Nếu bạn đang làm việc với JavaScript và lo lắng về việc tải lại trang để phản ánh các thay đổi của JavaScript. Hãy thử sử dụng trình gỡ lỗi Chrome, nơi bạn có thể thay đổi (các) tệp JavaScript đã tải của mình trong thời gian chạy và không sử dụng bất kỳ tải lại nào có thể kiểm tra các chức năng mới hoặc các thay đổi bạn muốn kiểm tra.


Chào mừng bạn đến với Siêu người dùng! Xin vui lòng đọc lại câu hỏi một cách cẩn thận. Câu trả lời của bạn không trả lời câu hỏi ban đầu.
DavidPostill


0

Thêm một số chức năng ngày động ở cuối tệp JavaScript của bạn. Nó sẽ buộc trình duyệt tải tệp JavaScript đã cập nhật. Có nghĩa là, khi bao gồm tệp .js bạn có thể thêm .... xyz.js?

< ? php echo date('l jS \of F Y h:i:s A') ? >

Tất nhiên điều này có thể được gỡ bỏ sau khi gỡ lỗi của bạn và sẵn sàng để đi vào hoạt động.


Đây không phải là Javascript.
Natalie Adams
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.