Làm cách nào để buộc Internet Explorer (IE) thực sự tải lại trang?


154

Khi sử dụng Internet Explorer 8 để kiểm tra ứng dụng web của tôi, tôi thường thấy nó không tải lại trang, vì vậy tôi không thấy các thay đổi của mình. Điều này đã dẫn đến rất nhiều thời gian lãng phí và thất vọng tự hỏi tại sao bản sửa lỗi của tôi "không hoạt động" - trong khi thực tế trình duyệt không bao giờ tải phiên bản cố định.

Tôi đã thử nút Làm mới. Tôi đã thử F5, Control- F5, Control- R, Control- Shift- R, giữ Controltrong khi nhấp vào nút Làm mới, mọi thứ tôi có thể nghĩ đến - nó không thực sự tải nội dung mới từ máy chủ. Tôi đã xác nhận điều này với Fiddler.

Làm thế nào để tôi nói với IE " Tôi không quan tâm những gì bạn nghĩ rằng bạn đã lưu vào bộ nhớ cache, tôi muốn tải lại trang - thực sự, ý tôi lần này, thành thật với Chúa, tôi muốn bạn thực sự đến máy chủ và tải xuống mọi thứ một lần nữa "?


2
Sử dụng một cửa sổ duyệt web riêng tư, có thể?
Josh Lee

3
Có thể máy chủ web của bạn đang phục vụ trang cũ (thông qua bộ đệm) thay vì phiên bản mới? Không quan trọng bạn tải lại bao nhiêu lần trong trường hợp đó.
Michael Todd

1
Michael, không, tôi đã xác minh trong Fiddler rằng IE không nhận được nội dung trang từ máy chủ.
EMP

Control + F5 đi qua Cache, thật kỳ quặc nếu không ....
Tamara Wijsman

2
Từ ngữ tốt nhất của một câu hỏi tôi đã gặp cho đến nay trên StackExchange!
dùng785529

Câu trả lời:


126
  1. Chọn Công cụ >> Tùy chọn Internet .
  2. Nhấp vào nút Cài đặt trong Lịch sử Duyệt .
  3. Chọn mỗi lần tôi truy cập nút radio của trang web .
  4. Nhấn OK để đóng hộp thoại Cài đặt.
  5. Bấm OK để đóng hộp thoại Tùy chọn Internet.

3
Nếu đây là những gì bạn đã làm, hãy đánh dấu nó là câu trả lời
Earlz

34
Nó có thể ảnh hưởng đến hiệu suất duyệt chung, nhưng chỉ khi bạn thực hiện duyệt chung với IE ...
Joel Mueller

3
Ev: Mặt đối diện của người dùng này thường được sửa bằng cách thay đổi URL cho tất cả các tập lệnh và bảng định kiểu mỗi khi bạn chạm vào mã, thường bằng cách thêm ?version-numberhậu tố chuỗi truy vấn.
bobince

4
"Mỗi lần tôi truy cập trang web" có thể không làm những gì bạn nghĩ. Xem fiddler2.com/redir/?id=httpperf
EricLaw

6
Tôi đồng ý với @EricLaw, nếu bạn sử dụng Fiddler, bạn sẽ thấy các tệp được liên kết với trang đôi khi không được tải lại ngay cả khi "Mỗi lần tôi truy cập trang web" được đặt. Sử dụng menu thanh công cụ IE: Cache> Luôn làm mới từ máy chủ hoặc nút Clear Cache trong Fiddler.
Phillip Ngân

43

Vì IE8 là trình duyệt, bạn có thể nhấn F12để mở các công cụ phát triển và chọn menu Cache ở trên cùng và sau đó luôn làm mới từ máy chủ để bỏ qua bộ đệm.

Tóm lại, bấmF12 . Nhấp vào Cache -> Luôn làm mới từ máy chủ

Bạn chỉ có thể xóa bộ nhớ cache của mình ở đây, nếu đó là hành động mong muốn. Tùy chọn luôn làm mới không phải là một tùy chọn toàn cầu và sẽ không cản trở hiệu suất tổng thể trong IE.

IE7 cũng có các công cụ phát triển, nhưng chúng phải được cài đặt riêng. Bạn cũng có thể sử dụng các công cụ phát triển IE8 để chạy trình duyệt ở chế độ IE7.


+1 để giải quyết vấn đề này mà không cần sử dụng tùy chọn toàn cầu.
Marcus Riemer

Tương tự như ở đây , điều đó vẫn không phải lúc nào cũng làm mới tất cả nội dung. Và tôi cũng không biết rằng tải lại cũng tốt trên các URL - mỗi cửa sổ dường như có F12 của riêng nó. Đây là một cách kỹ lưỡng hơn để làm nếu, nếu bạn có quyền truy cập vào javascript bao gồm.
ruffin

1
Làm thế nào để bạn làm điều này trong IE 11? Không có tùy chọn bộ nhớ cache tôi có thể tìm thấy.
David Thielen

4
Trong IE 11, tùy chọn này nằm dưới F12 -> Mạng -> biểu tượng thứ 3 từ trái sang.
Den

22

Ctrl+ F5trong IE tải lại trang bỏ qua bộ đệm


26
Không, nó không. Tôi biết rằng nó bỏ qua bộ nhớ cache một số thời gian, nhưng không phải tất cả thời gian.
EMP

16
Ctrl + f5 luôn tải lại trang từ máy chủ. Những gì nó không nhất thiết phải làm là tải lại các tệp bổ sung mà trang tham chiếu

2
Đủ công bằng - nhưng tôi cần nó để tải lại MỌI THỨ.
EMP

1
CTRL + F5 sẽ thực hiện làm mới toàn bộ trang và tất cả các tài nguyên của nó. Các cuộc gọi được thực hiện qua XMLHTTPRequest sau này có thể được lưu trong bộ nhớ cache (nếu bạn không muốn chúng được lưu trong bộ nhớ cache, hãy gửi các tiêu đề không có bộ đệm phù hợp). Một lưu ý là nếu trang đang được đề cập là XML, thì nó thực sự được tải thông qua MSXML và Dochost không tôn trọng CTRL + Làm mới đúng cách.
EricLaw

3
ctrl + f5 không phải lúc nào cũng tải lại mọi thứ từ máy chủ. Trong các thử nghiệm của tôi, javascript chứa trong tệp html không tải lại sau khi nhấn ctrl-f5 mặc dù trang đã thay đổi.
RCarver

18

IE rất háo hức với các trang bộ nhớ cache, ngay cả khi bạn bảo nó không thông qua các tiêu đề bộ đệm. Microsoft KB 234067 giải thích các câu thần chú cần thiết. Tóm lại, bạn cần cung cấp các tiêu đề sau.

Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>

Cài đặt Expires = -1(như được đề xuất trong bài viết KB) sẽ hoạt động đối với hầu hết các khung; các trình duyệt được yêu cầu xử lý các định dạng ngày không hợp lệ như trong quá khứ ( RFC 2616 ).

Trong .NET, bạn có thể thực hiện điều đó trên mức độ chi tiết của từng trang bằng cách sử dụng bộ phương thức này trước khi gọi trang web:

HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();

xem: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ Hoạt động tốt cho MVC3.0.


1
Không đúng sự thật. IE6 + hoàn toàn tôn trọng tất cả các tiêu đề cấm bộ nhớ cache. fiddler2.com/redir/?id=httpperf
EricLaw

Điều đó rất tốt, nhưng không giúp WRT câu hỏi.
Matthias Urlichs

6

Tab Mạng của thanh công cụ dành cho nhà phát triển web có một nút để dễ dàng xóa bộ đệm. Tôi thường sử dụng nó trong trường hợp bạn mô tả.

Điều đó không lý tưởng, vì bạn có thể không thực sự muốn xóa toàn bộ bộ nhớ cache của mình, nhưng vì tôi không sử dụng IE để duyệt chung, nên nó hoạt động với tôi.


4

Điều này vẫn xảy ra trong IE9. Thật đáng ngạc nhiên, câu trả lời là Ctrl- ShiftNút -Refresh


Chức năng đó có khác với nút Ctrl-Refresh không?
Jon Onstott

3

Ngẫu nhiên, vấn đề có thể sẽ tồn tại cho người xem trang web của bạn. Tôi đã thấy ý tưởng sau đây trong một cuốn sách AJAX ...

Sử dụng PHP để thêm mã thông báo ngẫu nhiên vào URL hiện tại để trình duyệt bị lừa nghĩ rằng đó là một trang riêng.


Làm cho URL xấu, mặc dù.
LawrenceC

2

Bản thân tôi cũng gặp vấn đề tương tự. Tôi tin rằng cách duy nhất để làm điều đó là xóa bộ nhớ cache (An toàn -> Xóa lịch sử duyệt web). Chỉ kiểm tra "Tệp Internet tạm thời".

Hi vọng điêu nay co ich.


2

Giữ phím althoặc ctrlkhi bạn nhấp vào nút refresh.


1

Tôi đồng ý rằng việc thêm mã thông báo ngẫu nhiên vào url là giải pháp đáng tin cậy nhất và khi được triển khai, người dùng không phải làm gì cả.

Ngoài cách tiếp cận mã thông báo ngẫu nhiên, những gì tôi có xu hướng luôn làm để buộc tải lại hoàn toàn (yêu cầu) của trang và tất cả các tệp phụ thuộc của nó, tôi chỉ cần đặt con trỏ ở cuối url và nhấn Enter. Hoạt động mọi lúc ... và tôi sử dụng IE 8.


1

F12-> CTRL+ Rnhanh hơn một chút đối với IE9 +. Như mọi người đã đề cập, IE không xóa bộ nhớ cache rất thông minh như Chrome.


1

Tôi biết điều này có vẻ hơi kỳ lạ ... nhưng một điều tôi đã nhận thấy gần đây, đó là đôi khi bạn nhận được kết quả khác nhau tùy thuộc vào cách bạn "làm mới". Tôi đã thấy hành vi sau:

F5> tải từ bộ đệm mà không làm mới,
Alt+ D, ENTER> thực sự làm mới bỏ qua bộ đệm.
( Alt+ Dcó thể được thay thế bằng cách nhấp vào thanh địa chỉ)

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.