ฉันสามารถบังคับให้แคชรีเฟรชใน Safari ทำงานบน iOS ได้หรือไม่?


56

เบราว์เซอร์เดสก์ท็อป Windows ส่วนใหญ่ใช้ชุดแป้นพิมพ์Ctrl+ F5เพื่อบังคับให้แคชรีเฟรชหน้าเฉพาะ เบราว์เซอร์ตาม Mac OS X มักจะใช้+Command Rมีแคชรีเฟรชเทียบเท่าสำหรับหน้าเดียวใน Safari ที่ทำงานบน iOS หรือไม่

ฉันรู้ว่าฉันสามารถล้างแคชเบราว์เซอร์ด้วยตนเองได้ แต่ฉันต้องการรีเฟรชเฉพาะหน้าที่ฉันกำลังดูอยู่


นี่คือสิ่งที่คุณคิด apple.stackexchange.com/questions/73153/…
bassplayer7

@ bassplayer7 อยู่ใกล้ แต่ก็ไม่เหมือนกัน Command + R รีเฟรชทรัพยากรสำหรับหน้าเฉพาะที่คุณกำลังเผชิญอยู่ ความหมายที่ JavaScript ที่ลิงก์ภายนอกจาก CDN จะถูกรีเฟรชด้วย ไม่รวมทรัพยากรที่ไม่ได้อ้างอิง มันเป็นเม็ดเล็กมากการควบคุมที่ดีอึดเบราว์เซอร์สก์ท็อปและเป็นซุปเปอร์ที่มีประโยชน์สำหรับการพัฒนาเว็บ
ahsteele

มีเหตุผล. ในฐานะนักพัฒนาเว็บฉันเข้าใจว่าคุณสะดวกเพียงใด ฉันสมมติว่าคุณได้ทำไปแล้ว แต่ฉันอดไม่ได้ที่จะพูดถึงมัน - ฉันใช้แอพนี้จาก Adobeเพื่องานมือถือของฉัน และฉันเชื่อว่าการรีสตาร์ท Safari - ยุ่งยากอย่างที่เป็น - มีการรีเฟรชอย่างน้อยปุ่มจากนั้น ฉันไม่ได้ยุ่งกับมันมากพอที่จะรู้ว่ามันสดชื่นอะไร
bassplayer7

การกดปุ่มรีเฟรชในแถบที่อยู่นั้นไม่ได้รีเฟรชเนื้อหาแคชเช่นกัน?
Gerry

คำตอบ:


36

การบังคับปิดไม่ทำงานอย่างน่าเชื่อถือสำหรับฉันใน iOS 8 สิ่งที่ใช้โหมดส่วนตัวสำหรับการทดสอบ:

  1. เปิดหน้าในโหมดส่วนตัว (และคั่นหน้าเพื่อให้คุณสามารถเปิดได้ในภายหลัง)
  2. เมื่อคุณต้องการรีเฟรชปิดเบราว์เซอร์ "แท็บ" (คุณสามารถอยู่ใน Safari และโหมดส่วนตัว)
  3. เปิดหน้าอีกครั้ง (ใช้บุ๊กมาร์กที่คุณสร้างในขั้นตอนที่ 1)

1
ไม่ใช่ทางออกที่ดี แต่ดูเหมือนว่าดีที่สุดที่ iOS ให้เราทำงานด้วย
เบรนแดน

2
ฉันจะไปที่ "โหมดส่วนตัว" ได้อย่างไร
linuxdan

ใน Mobile Safari: แตะไอคอนสองช่องซึ่งจะแสดงแท็บที่เปิดอยู่ทั้งหมดและแสดงปุ่มโหมด "ส่วนตัว" ที่ด้านล่างซ้าย support.apple.com/th-gb/HT203036
แมตต์ Sephton

ในฐานะของ iOS 13.1.3 นี้ไม่ทำงานอีกต่อไป
timbo

11

หากคุณมีสายโทรศัพท์ไปยังคอมพิวเตอร์ / แล็ปท็อป Apple ด้วยเครื่องมือสำหรับนักพัฒนา Safari ที่เปิด (และหน้าต่างที่ใช้งานอยู่) คุณสามารถกด:

Command Key + Option + R


ฉันพนันได้เลยว่าทำงานได้ถ้าคุณใช้แป้นพิมพ์บลูทู ธ กับโทรศัพท์ของคุณเช่นกัน
rinogo

@rinogo เป็นค่าลบ ฉันใช้แป้นพิมพ์ apple magic บน ipad pro ของฉันและ "cmd + shift + r" ไม่ได้ทำอะไรเลยในเบราว์เซอร์ซาฟารี
danielson317

7

หากคุณบังคับให้ออกจาก Safari (คลิกปุ่มโฮมจากนั้นคลิกสองครั้งที่ปุ่มโฮมกดไอคอน Safari ค้างไว้ในแถบมัลติทาสก์แล้วแตะจุดสีแดง) ปรากฏว่า Safari จะล้างแคช แต่จะล้างแคชทั้งหมดไม่ใช่เพียงหน้าเดียว

คุณสามารถล้างคุกกี้และข้อมูลของ Safari ในแอพการตั้งค่า ภายใต้ขั้นสูงคุณสามารถล้างข้อมูลจากแต่ละเว็บไซต์ซึ่งอาจทำงานได้หากคุณรู้จักเว็บไซต์ทั้งหมดที่เกี่ยวข้องกับหน้าเว็บที่คุณต้องการล้างข้อมูล


1
สิ่งนี้ไม่ทำงานสำหรับฉัน (iOs 7.0.4)
Nabil Kadimi

3
ด้วย iOS 7 คุณจะโยนแอพขึ้นจากรายการล่าสุด / มัลติทาสก์เพื่อบังคับให้เลิก
hotpaw2

1
iOS 7.1 ที่นี่ฉันจะตรวจสอบผ่านทางซาฟารีเครื่องมือสำหรับนักพัฒนาที่ห่างไกลและดูเหมือนว่าทรัพยากรที่เป็นจริงไม่ได้เก็บไว้ชั่วคราวหลังจาก (คำขอระยะเวลา> เครือข่าย) การบังคับออกแอป
fregante

5

คุณสามารถบังคับให้อุปกรณ์หยุดการแคชไฟล์โดยเชื่อมต่อกับคอมพิวเตอร์ด้วยสายเคเบิลและเปิดใช้งานโหมดผู้พัฒนา Safari

  • เปิดใช้งาน Web Inspector บนอุปกรณ์มือถือ:
    การตั้งค่า> Safari> ขั้นสูง> Web Inspector
  • เปิดใช้งานเครื่องมือ Dev ใน Safari บน macOS:
    Safari> การตั้งค่า> แท็บขั้นสูง> แสดงการพัฒนาในแถบเมนู
  • เชื่อมต่ออุปกรณ์กับคอมพิวเตอร์
  • เปิดแผงเครื่องมือ dev สำหรับอุปกรณ์จาก Safari บนคอมพิวเตอร์:
    พัฒนา> ตัวอย่าง iPhone> example.com/page
  • หากต้องการปิดใช้งานการแคชให้ไปที่แท็บเครือข่ายและตรวจสอบให้แน่ใจว่าไอคอนเล็ก ๆ สำหรับ "ไม่มีแคช" เป็นสีน้ำเงิน (ดูเหมือนว่ารูปทรงกระบอกมีจุดตัดผ่าน)
  • ตอนนี้คุณน่าจะสามารถกดรีเฟรชได้ทุกเวลาบนอุปกรณ์ iOS และคุณจะได้รับเวอร์ชันที่ไม่ใช่แคชในปัจจุบัน!

หากคุณเป็นนักพัฒนาเว็บนี่เป็นวิธีที่ดีที่สุดที่จะทำเพราะตอนนี้คุณสามารถเข้าถึงแผงเครื่องมือ dev ที่มีประโยชน์อย่างยิ่ง และคุณไม่จำเป็นต้องทำซ้ำกระบวนการที่น่ารำคาญหากคุณต้องการรับรุ่นใหม่ตลอดเวลาไม่เพียงแค่ล้างแคชครั้งเดียว

หากคุณเป็นเพียงผู้ใช้ทั่วไปที่พยายามล้างแคชของพวกเขาคุณอาจต้องการใช้หนึ่งในวิธีอื่นที่นี่


อัปเดต: คุณสามารถเชื่อมต่อกับอุปกรณ์ผ่าน WiFi ได้แล้ว อาจยังต้องมีการตั้งค่าเริ่มต้นด้วยสายเคเบิล แต่คุณสามารถเชื่อมต่อได้อย่างแน่นอนหากไม่มีหลังจากนั้น
พัฒนา> ตัวอย่าง iPhone> เชื่อมต่อผ่านเครือข่าย


1

ลบข้อมูลแคชสำหรับเว็บไซต์เดียวโดยไปที่การตั้งค่า > Safari > ขั้นสูง > ข้อมูลเว็บไซต์ > แสดงไซต์ทั้งหมด

แตะแก้ไขที่ด้านล่างขวาของหน้าจอแล้วเลื่อนในรายการหรือค้นหาด้วยช่องค้นหาเพื่อค้นหาเว็บไซต์ที่คุณต้องการลบ) แตะสีแดง-ไอคอนถัดจากที่อยู่เว็บไซต์และแล้วแตะลบปุ่มที่ปรากฏ

กลับไปที่ Safari แล้วโหลดหน้าซ้ำและสิ่งประดิษฐ์ทั้งหมดของไซต์จะถูกโหลดใหม่


สิ่งนี้ไม่ได้ผล ไอเท็มไม่สามารถคลิกได้บน iPad ของฉัน (iOS 12)
ชีสดังนั้นหยุดทำร้ายโมนิก้า

0

บน Safari เปิดใช้งานโหมดผู้พัฒนา จากนั้นคุณสามารถใช้ชุดค่าผสมต่อไปนี้เพื่อล้างแคช:

Option-Key + Command-Mac-Key + E 

ฉันคิดว่านี่จะเป็นการลบแคชของเว็บไซต์ที่คุณอยู่ในขณะนั้น


น่าเสียดายที่คำแนะนำของคุณใช้กับ Safari เวอร์ชันเดสก์ท็อปเท่านั้น คำถามคือเกี่ยวกับรุ่น iOS
calum_b

-1

แตะสองครั้งที่ปุ่มรีเฟรช


7
สิ่งนี้ใช้ได้กับทุกคนหรือไม่ การแตะสองครั้งจะหยุดการรีเฟรชที่ฉันเริ่มต้นด้วยการแตะครั้งแรก
เบรนแดน

ใช่นี่เป็นสิ่งเดียวที่ได้ผลจริงสำหรับฉัน ไม่แน่ใจว่านี่เป็นเพียงการเตะซาฟารีในตูด แต่ก็ใช้ได้
Ben Rabidou

-3

คุณสามารถเพิ่มตัวเลขสุ่มไปที่สคริปต์หรือลิงค์ src เช่น:

<link rel="stylesheet" href="css/main.css?rand=<?=$rand;?>" type="text/css" /> <script type="text/javascript" src="js/main.js?rand=<?=$rand;?>"></script>

บังคับให้ Safari โหลดไฟล์ซ้ำอีกครั้งเนื่องจากคิดว่าเป็นไฟล์อื่น


4
มันทำงานอย่างไรจากฝั่งผู้ใช้?
nohillside

1
ผนวกพารามิเตอร์สุ่มเข้ากับ URL ที่ด้านบน...?rand=15
Aaron Digulla

สิ่งนี้เรียกว่า "การป้องกันการใช้แคช" ซึ่งทำให้ URL-string นั้นไม่เหมือนใครเมื่อเบราว์เซอร์เห็น ดังนั้นจะไม่พบ URL นั้นในแคช (และฝั่งโฮสต์ก็ละเว้นGETพารามิเตอร์ทั้งหมดอย่างสมบูรณ์) แต่นี่ไม่ใช่สิ่งเดียวกับสิ่งที่ OP ขอ
Mike Robinson

@AaronDigulla สิ่งนี้จะไม่ทำงานกับทรัพยากรที่เชื่อมโยงเช่นไฟล์ CSS และรูปภาพ
Flimm

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