จะบังคับให้ Internet Explorer (IE) โหลดหน้าซ้ำอีกครั้งได้อย่างไร


154

เมื่อใช้ Internet Explorer 8 เพื่อทดสอบเว็บแอปพลิเคชันของฉันฉันมักจะพบว่าไม่ได้โหลดหน้าซ้ำดังนั้นฉันจึงไม่เห็นการเปลี่ยนแปลงของฉัน สิ่งนี้ส่งผลให้เสียเวลาและความยุ่งยากเป็นจำนวนมากสงสัยว่าทำไมการแก้ไขของฉัน "ไม่ทำงาน" - ในความเป็นจริงเบราว์เซอร์ไม่เคยโหลดเวอร์ชันคงที่

ฉันลองปุ่มรีเฟรชแล้ว ฉันได้พยายามF5, Control- F5, Control- R, Control- Shift- RถือControlในขณะที่คลิกปุ่ม Refresh ทุกอย่างที่ฉันสามารถคิด - มันไม่จริงโหลดเนื้อหาใหม่จากเซิร์ฟเวอร์ ฉันได้ยืนยันสิ่งนี้กับ Fiddler แล้ว

ฉันจะบอก IE " ฉันไม่สนใจสิ่งที่คุณคิดว่าคุณมีแคชฉันต้องการที่จะโหลดหน้า - ไม่มีจริงๆผมหมายความว่ามันเวลานี้มีความซื่อสัตย์ต่อพระเจ้าฉันต้องการให้คุณจริงไปยังเซิร์ฟเวอร์และ ดาวน์โหลดทุกอย่างอีกครั้ง "?


2
ใช้หน้าต่างการท่องเว็บแบบส่วนตัวใช่ไหม
Josh Lee

3
เป็นไปได้หรือไม่ที่เว็บเซิร์ฟเวอร์ของคุณกำลังแสดงหน้าเก่า (ผ่านแคช) แทนที่จะเป็นเวอร์ชั่นใหม่ ไม่สำคัญว่าคุณจะโหลดซ้ำในกรณีนี้กี่ครั้ง
Michael ทอดด์

1
ไมเคิลไม่ฉันตรวจสอบใน Fiddler ว่า IE ไม่ได้รับเนื้อหาของหน้าจากเซิร์ฟเวอร์
EMP

Control + F5 ผ่าน Cache มันแปลกถ้ามันไม่ ....
Tamara Wijsman

2
ข้อความที่ดีที่สุดของคำถามที่ฉันได้พบจนถึง StackExchange!
user785529

คำตอบ:


126
  1. เลือกTools >> ตัวเลือกอินเทอร์เน็ต
  2. คลิกปุ่มการตั้งค่าในประวัติการเข้าชม
  3. เลือกทุกครั้งที่ผมแวะไปที่เว็บเพจปุ่ม
  4. คลิกตกลงเพื่อปิดกล่องโต้ตอบการตั้งค่า
  5. คลิกตกลงเพื่อปิดกล่องโต้ตอบตัวเลือกอินเทอร์เน็ต

3
หากนี่คือสิ่งที่คุณทำให้ทำเครื่องหมายว่าเป็นคำตอบ
Earlz

34
มันอาจทำร้ายประสิทธิภาพการท่องทั่วไป แต่ถ้าคุณทำท่องเว็บของคุณกับ IE ทั่วไป ...
โจเอลมูลเลอร์

3
Ev: ด้านที่ผู้ใช้เผชิญกับสิ่งนี้มักจะได้รับการแก้ไขโดยการเปลี่ยน URL สำหรับสคริปต์และสไตล์ทั้งหมดทุกครั้งที่คุณสัมผัสรหัสโดยทั่วไปแล้วโดยการเพิ่ม?version-numberคำต่อท้ายสตริงข้อความค้นหา
bobince

4
"ทุกครั้งที่ฉันเข้าชมหน้าเว็บ" น่าจะไม่ทำในสิ่งที่คุณคิด ดูfiddler2.com/redir/?id=httpperf
EricLaw

6
ฉันเห็นด้วยกับ @EricLaw ถ้าคุณใช้พู้ทำเล่นคุณจะเห็นว่าไฟล์ที่เชื่อมโยงกับหน้านั้นบางครั้งไม่ได้ทำการรีโหลดแม้จะมีการตั้งค่า "ทุกครั้งที่ฉันเข้าชมหน้าเว็บ" ใช้เมนูแถบเครื่องมือ IE: แคช> รีเฟรชจากเซิร์ฟเวอร์เสมอหรือปุ่มล้างแคชใน Fiddler
Phillip Ngan

43

เนื่องจากมันระบุว่า IE8 เป็นเบราว์เซอร์คุณสามารถกดF12เพื่อเปิดเครื่องมือการพัฒนาและเลือกเมนูแคชที่ด้านบนจากนั้นรีเฟรชจากเซิร์ฟเวอร์เสมอเพื่อเลี่ยงผ่านแคช

ในระยะสั้นกด F12คลิกCache -> รีเฟรชจากเซิร์ฟเวอร์เสมอ

คุณสามารถล้างแคชที่นี่ได้เช่นกันหากเป็นการกระทำที่ต้องการ ตัวเลือกรีเฟรชเสมอไม่ใช่ตัวเลือกที่ใช้ร่วมกันและจะไม่ขัดขวางประสิทธิภาพโดยรวมใน IE

IE7 ยังมีเครื่องมือในการพัฒนา แต่จะต้องติดตั้งแยกต่างหาก คุณยังสามารถใช้เครื่องมือ dev IE8 เพื่อเรียกใช้เบราว์เซอร์ในโหมด IE7


+1 สำหรับการแก้ปัญหานี้โดยไม่ต้องใช้ตัวเลือกระดับโลก
Marcus Riemer

คล้ายกับที่นี่ซึ่งยังคงไม่รีเฟรชเนื้อหาทั้งหมด และฉันไม่รู้ว่าการโหลดซ้ำนั้นดีสำหรับทั้ง URL - แต่ละหน้าต่างดูเหมือนว่าจะมี F12 ของตัวเองตลอดเวลา นี่เป็นวิธีที่ละเอียดยิ่งกว่าที่ควรทำถ้าหากคุณสามารถเข้าถึงจาวาสคริปต์ได้
ruffin

1
คุณจะทำสิ่งนี้ใน IE 11 ได้อย่างไร ฉันไม่มีตัวเลือกแคช
David Thielen

4
ใน IE 11 ตัวเลือกนี้อยู่ภายใต้ F12 -> เครือข่าย -> ไอคอนที่ 3 จากซ้าย
Den

22

Ctrl+ F5ใน IE จะโหลดหน้าเว็บอีกครั้งโดยไม่สนใจแคช


26
ไม่เลย ฉันรู้ว่ามันไม่สนใจแคชในบางครั้ง แต่ไม่ใช่ตลอดเวลา
EMP

16
Ctrl + f5 จะโหลดซ้ำหน้าจากเซิร์ฟเวอร์เสมอ สิ่งที่ไม่จำเป็นต้องทำคือโหลดไฟล์พิเศษที่หน้าอ้างอิง

2
ยุติธรรมเพียงพอ - แต่ฉันต้องการมันเพื่อโหลดทุกสิ่ง
EMP

1
CTRL + F5 ควรทำการรีเฟรชหน้าเว็บและแหล่งข้อมูลทั้งหมด การโทรผ่านทาง XMLHTTPRequest ในภายหลังอาจถูกแคช (หากคุณไม่ต้องการให้พวกเขาถูกแคชให้ส่งส่วนหัวที่ไม่มีแคชที่เหมาะสม) หนึ่งข้อแม้คือถ้าหน้าดังกล่าวเป็น XML จะถูกโหลดจริงผ่าน MSXML และ DocHost ไม่เคารพ CTRL + รีเฟรชอย่างถูกต้อง
EricLaw

3
ctrl + f5 ไม่ได้โหลดทุกสิ่งจากเซิร์ฟเวอร์เสมอ ในการทดสอบของฉันจาวาสคริปต์ที่มีอยู่ในไฟล์ html จะไม่โหลดซ้ำหลังจากกด ctrl-f5 แม้ว่าหน้าจะเปลี่ยนไป
rcarver

18

IE มีความกระตือรือร้นในการทำแคชหน้าแม้ว่าคุณจะไม่บอกผ่านส่วนหัวของแคชก็ตาม Microsoft KB 234067อธิบายถึงสิ่งกระตุ้นที่จำเป็น ในระยะสั้นคุณจะต้องส่งส่วนหัวต่อไปนี้

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

การตั้งค่าExpires = -1(ตามที่แนะนำในบทความ KB) ควรใช้ได้กับเฟรมเวิร์กส่วนใหญ่ เบราว์เซอร์จำเป็นต้องใช้กับรูปแบบวันที่ที่ไม่ถูกต้องเหมือนในอดีต ( RFC 2616 )

ใน. NET คุณสามารถทำได้แบบทีละหน้าโดยใช้ชุดของวิธีการนี้ก่อนที่จะเรียกเว็บเพจ:

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();

ดู: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ ทำงานได้ดีสำหรับ MVC3.0


1
ไม่จริง IE6 + เคารพส่วนหัวที่ห้ามแคชทั้งหมด fiddler2.com/redir/?id=httpperf
EricLaw

ทุกอย่างดีมาก แต่ไม่ได้ช่วยให้ WRT คำถาม
Matthias Urlichs

6

แท็บเครือข่ายของแถบเครื่องมือผู้พัฒนาเว็บมีปุ่มเพื่อล้างแคชได้อย่างง่ายดาย ฉันมักจะใช้สิ่งนั้นในกรณีที่คุณอธิบาย

ไม่เหมาะเนื่องจากคุณอาจไม่ต้องการล้างแคชทั้งหมดของคุณ แต่เนื่องจากฉันไม่ได้ใช้ IE สำหรับการเรียกดูทั่วไปจึงเหมาะสำหรับฉัน


4

สิ่งนี้ยังคงเกิดขึ้นใน IE9 น่าประหลาดใจคำตอบคือCtrl- Shiftปุ่มรีเฟรช


ฟังก์ชั่นนั้นแตกต่างจากปุ่ม Ctrl-Refresh หรือไม่?
Jon Onstott

3

บังเอิญปัญหาอาจเกิดขึ้นสำหรับผู้ดูเว็บไซต์ของคุณเช่นกัน ฉันเห็นแนวคิดต่อไปนี้ในหนังสือ AJAX ...

ใช้ PHP เพื่อเพิ่มโทเค็นแบบสุ่มไปยัง URL ปัจจุบันเพื่อให้เบราว์เซอร์ถูกหลอกให้คิดว่าเป็นหน้าแยกต่างหาก


ทำให้ URL ดูน่าเกลียด
LawrenceC

2

ฉันมีปัญหาเดียวกันกับตัวเอง ฉันเชื่อว่าวิธีเดียวที่จะทำได้คือการล้างแคช (ความปลอดภัย -> ลบประวัติการเรียกดู) ตรวจสอบเฉพาะ "ไฟล์อินเทอร์เน็ตชั่วคราว"

หวังว่านี่จะช่วยได้



1

ฉันยอมรับว่าการเพิ่มโทเค็นแบบสุ่มใน URL เป็นโซลูชันที่น่าเชื่อถือที่สุดและเมื่อผู้ใช้นำไปใช้งานแล้วผู้ใช้ไม่ต้องทำอะไรเลย

นอกเหนือจากวิธีโทเค็นแบบสุ่มสิ่งที่ฉันมักจะทำเพื่อบังคับให้โหลดซ้ำทั้งหมด (คำขอ) ของหน้าและไฟล์ตามทั้งหมดของมันฉันเพียงแค่วางเคอร์เซอร์ที่ท้าย url แล้วกด Enter ทำงานได้ทุกครั้ง ... และฉันใช้ IE 8


1

F12-> CTRL+ Rเร็วกว่าเล็กน้อยสำหรับ IE9 + ดังที่ผู้คนได้กล่าวถึง IE ไม่ได้ล้างแคชอย่างชาญฉลาดเหมือน Chrome


1

ฉันรู้ว่านี่อาจดูแปลกไปหน่อย ... แต่สิ่งหนึ่งที่ฉันสังเกตเห็นเมื่อไม่นานมานี้คือบางครั้งคุณได้รับผลลัพธ์ที่แตกต่างกันไปขึ้นอยู่กับว่าคุณ "รีเฟรช" อย่างไร ฉันเคยเห็นพฤติกรรมดังต่อไปนี้:

F5> โหลดจากแคชโดยไม่ต้องรีเฟรช,
Alt+ D, ENTER> รีเฟรชจริงๆบายพาสแคช
( Alt+ Dสามารถแทนที่ได้ด้วยการคลิกในแถบที่อยู่)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.