จะปิด caching บน Firefox ได้อย่างไร?


143

ในระหว่างการพัฒนาฉันต้อง "ล้างแคช" ใน Firefox ตลอดเวลาเพื่อให้มันใช้ไฟล์ JavaScript เวอร์ชันล่าสุด

มีการตั้งค่าบางอย่าง (about: config) เพื่อปิดการแคชสำหรับไฟล์ JavaScript หรือไม่? หรือถ้าไม่ใช่สำหรับไฟล์ทั้งหมด?

คำตอบ:


229

ป้อน "about: config" ในแถบที่อยู่ Firefox และตั้งค่า:

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

หากมีการพัฒนาในท้องถิ่นหรือใช้แอตทริบิวต์รายการใหม่ของ HTML5 คุณอาจต้องตั้งค่าต่อไปนี้ใน about: config -

browser.cache.offline.enable = false

ฉันไม่รู้เรื่องอัญมณีเล็ก ๆ นี้ได้อย่างไร สินค้าทุกชนิดเกี่ยวกับ: config!
ABrowne

2
network.http.use-cache ไม่มีให้สำหรับฉัน การเปลี่ยน browser.cache.offline.enable ไม่ได้สร้างความแตกต่างให้ฉัน
เคอร์ติส

1
ฉันไม่สงสัยเลยว่านี่เป็นคำตอบที่ดี แต่ดูเหมือนว่าจะไม่เป็นความจริงในการสร้าง Firefox ใหม่ล่าสุด (ตอนนี้ฉันใช้ Developer Edition 47.0a2 อยู่ในขณะนี้) การปิดใช้งานการแคชในการตั้งค่านักพัฒนาเว็บนั้นมีผลสำหรับฉัน
JosephStyons

61

Web Developer Toolbarมีตัวเลือกที่จะปิดการใช้งานแคชซึ่งจะทำให้มันง่ายมากที่จะเปิดและปิดเมื่อคุณต้องการมัน


1
CTRL-F5 หรือกดปุ่ม Shift ค้างไว้ในขณะที่คลิกปุ่มโหลดซ้ำเป็นสิ่งที่ฉันทำไปแล้วในอดีต แต่คุณลักษณะ "ปิดใช้งานแคช" ของ Web Developer Toolbar เป็นวิธีที่ยอดเยี่ยมในการทำเช่นนั้น คุณไม่จำเป็นต้องปิดการใช้งานแคชของ firefox ทั้งหมด
Jon Onstott

1
คุณควรจำไว้ว่าการเปิดใช้งานแคชหลังจากการทดสอบ ;)
neurolabs

1
@ Shanimal มันใช้งานได้สำหรับฉันใน 14.0.1 คุณอาจต้องการถอนการติดตั้ง / ติดตั้งใหม่หรือบางสิ่งบางอย่าง
ลูคัส

@Lucas doh! รายการบนเซิร์ฟเวอร์ที่ฉันทำงานด้วยคือแคช แต่ฉันลืมที่จะลบความคิดเห็นของฉัน ... ขอบคุณ
Shanimal

1
สิ่งนี้ไม่ทำงานอีกต่อไปจนกว่า chrispederick แก้ไขการเปลี่ยนแปลง firefox ใหม่บางอย่างในเวอร์ชันล่าสุด ฉันจะไปกับ about: config solution ซึ่งดีสำหรับนักพัฒนา
Ligemer

12

คุณได้ลองใช้CTRL- F5อัปเดตหน้าเว็บแล้วหรือยัง


6
ฉันมีข้อสงสัยว่าสิ่งนี้ทำงานได้อย่างน่าเชื่อถืออย่างน้อยก็ต่อหน้า iframes และ framesets
Thilo

2
ถูกต้องมันจะไม่รีโหลด JS / CSS ใน iframe เสมอ แต่ใน Firefox คุณสามารถป๊อปเฟรมนั้นลงในแท็บใหม่และโหลดที่นั่นอีกครั้ง
scunliffe

ฉันมักจะใช้ Ctrl-F5 .... แล้วฉันก็พบว่ามันจะไม่โหลดไฟล์ js เวอร์ชันล่าสุดที่ฉันทำงานอยู่ :( อยู่ใน iframe เช่นกัน (ฉันรู้ว่า iframes เป็นมารไม่ใช่ตัวเลือกของฉัน ).
Gromer

Ctrl-F5 ไม่รีเซ็ตการแคชไฟล์ javascript สิ่งที่มันทำ (ส่วนใหญ่) คือการล้างเซสชั่นและคุกกี้ของคุณ แต่ไม่ใช่จาวาสคริปต์และสไตล์แคช
AceMark

10

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

FireBugมีตัวเลือกให้ปิดใช้งานแคชเบราว์เซอร์บนเมนูแบบเลื่อนลงของแท็บเครือข่าย


8

ในหน้าเดียวกันคุณต้องการปิดการใช้งานแคชทำสิ่งนี้: FYI: รุ่นที่ใช้งานอยู่คือ 30.0

คุณสามารถ :

เปิดแถบเครื่องมือนักพัฒนาเว็บ ผู้พัฒนาเว็บเปิด

และเลือกปิดใช้งานแคช

หลังจากนั้นมันจะโหลดหน้าเว็บจากหน้าเว็บของคุณเอง (คุณเปิดอยู่) และทุกสิ่งจะถูก recached และคำขอใด ๆ ที่ถูกจัดทำใหม่จะถูกเรียกคืนทุกครั้งด้วยเช่นกันและคุณอาจเปิดให้นักพัฒนาเว็บเปิดอยู่เสมอ .


8

เครื่องมือสำหรับนักพัฒนา Firefox 48

ช่วยให้คุณปิดแคชเฉพาะเมื่อเปิดกล่องเครื่องมือซึ่งเหมาะสำหรับการพัฒนาเว็บ:

  • F12
  • กล่องเกียร์ที่มุมบนขวา
  • เลื่อนลงด้านบนการตั้งค่าขั้นสูง
  • ทำเครื่องหมาย "ปิดใช้งานแคช (เมื่อเปิดกล่องเครื่องมือ)"

ป้อนคำอธิบายรูปภาพที่นี่

https://stackoverflow.com/a/27397425/895245มีเนื้อหาที่คล้ายกัน แต่การเปลี่ยนตำแหน่งเปลี่ยนไปเล็กน้อย


1
ขอบคุณ ... มีข้อมูลอยู่ที่นั่น (และในเธรดนี้) เกี่ยวกับการตั้งค่า network.http.use-cache เป็น false ... แต่ในรุ่น FF (53) ของฉันการตั้งค่านั้นไม่มีอีกต่อไป ... เทคนิคนี้เหนือกว่ามาก อย่างไรก็ตาม.
ไมค์หนู

7

หากคุณกำลังทำงานกับรหัสฝั่งเซิร์ฟเวอร์คุณสามารถสร้างตัวเลขสุ่มและต่อท้าย src ในลักษณะดังต่อไปนี้ ....

src = "yourJavascriptFile.js? randomNumber = 434534"

ด้วย randomNumber ที่ถูกสร้างแบบสุ่มในแต่ละครั้ง


นี่เป็นทางออกเดียวที่ได้ผลสำหรับฉันนอกเหนือจากการล้างแคชเบราว์เซอร์ด้วยตนเองทุกครั้งที่รีเฟรช
เคอร์ติส

4

ฉันรู้ว่าฉันฟื้นคืนชีพคำถามโบราณ แต่ฉันพยายามที่จะแก้ปัญหานี้ในวันนี้และมีทางเลือกอื่น การสลับการแคชเมื่อฉันต้องการทดสอบนั้นไม่เป็นที่ยอมรับสำหรับฉันและอย่างที่คนอื่นพูดถึงการรีเฟรชอย่างหนัก (ctrl + shift + r) ไม่ได้ผลเสมอไป

แต่ฉันเลือกที่จะวางสิ่งต่อไปนี้ในไฟล์ vhost.conf ของฉัน (สามารถทำได้ใน. htaccess) ในสภาพแวดล้อม dev ของฉัน:

<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>

ในสภาพแวดล้อมการพัฒนาของฉันสิ่งนี้ทำให้มั่นใจได้ว่าจะได้รับ js และ css เสมอ นอกจากนี้มันไม่ได้ส่งผลกระทบต่อส่วนที่เหลือของการสืบค้นของฉันและมันก็ใช้ได้กับเบราว์เซอร์ทั้งหมดดังนั้นการทดสอบด้วย chrome / ie ฯลฯ ก็ง่ายเช่นกัน

พบข้อมูลโค้ดที่นี่มีเคล็ดลับ apache ที่มีประโยชน์อื่น ๆ เช่นกัน: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

เพื่อให้แน่ใจว่าลูกค้าของฉันจะเห็นเวอร์ชันล่าสุดเกี่ยวกับการผลิตเสมอเราจะเพิ่มสตริงข้อความค้นหาใน js ที่รวมอยู่ในการอัปเดตแต่ละครั้งเช่น

jquery.somefile.js?v=0.5

นี่เป็นการบังคับให้เบราว์เซอร์ของลูกค้าของฉันอัปเดตแคชภายในเครื่องเมื่อพวกเขาเห็นการสืบค้นใหม่ แต่เก็บแคชสำเนาใหม่จนกว่าจะมีการอัปเดตไฟล์อีกครั้ง


3

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

คุณจะต้องปรับแต่งสำหรับเครื่องมือสภาพแวดล้อมเฉพาะของคุณ แต่ถ้าคุณใช้ PHP / Apache นี่เป็นทางออกที่ยอดเยี่ยมสำหรับทั้งคุณและผู้ใช้ปลายทาง

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/


3

คุณสามารถใช้CTRL- F5เพื่อโหลดซ้ำโดยการข้ามแคช

คุณสามารถตั้งค่ากำหนดใน firefox ไม่ให้ใช้แคช

network.http.use-cache = false

คุณสามารถตั้งค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อส่งส่วนหัวแบบไม่แคช / หมดอายุ / ควบคุมแคชสำหรับไฟล์ js

นี่คือตัวอย่างสำหรับ apache เว็บเซิร์ฟเวอร์


นั่นคือ shift-f5 หรือ ctrl-f5
Thilo

3

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

ป้อนคำอธิบายรูปภาพที่นี่


Firebug ถูกยกเลิก
K7AAY

1

มีข้อดีข้อเสียของสองโซลูชั่นล่าสุดที่โพสต์ แต่พวกเขาทั้งสอง IMHO โซลูชั่นที่ยอดเยี่ยม

  1. คุณอาจหรือไม่ต้องการรหัสเซสชันของคุณฝังอยู่ใน URL ของคุณเพื่อความปลอดภัยที่เข้มงวดยิ่งขึ้น แต่ในการพัฒนาที่ไม่สำคัญ แต่ถ้าคุณลืมที่จะลบมัน? มันใช้งานได้จริงเหรอ? คุณจะไม่ต้องการอะไรเช่นเครื่องกำเนิดตัวเลขตามลำดับ (จำนวนการเข้าชมที่เก็บไว้ในเซสชั่นหรือแม้กระทั่งถ้า 1 ถึง 0 ถ้า 0 จาก 1)

  2. การเพิ่ม session id (หรือซีเควนอะไรก็ตาม) หมายความว่าคุณต้องจำไว้ว่าให้เพิ่มมันเข้าไปในทุก ๆ ทรัพยากรที่คุณไม่ต้องการแคช ในอีกด้านหนึ่งจะดีกว่าเพราะคุณสามารถใส่รหัสเซสชันของคุณกับทรัพยากรที่คุณกำลังพัฒนาและทดสอบอยู่ ในทางกลับกันหมายความว่าคุณต้องทำเช่นนั้นและคุณต้องจำไว้ว่าต้องลบมันออกเพื่อการผลิต

  3. การแก้ไขไฟล์ vhost.conf หรือไฟล์. htaccess นั้นเป็นการหลอกลวงโดยไม่จำเป็นต้องจำเพื่อเพิ่มและลบรหัสเซสชัน แต่ข้อเสียคือประสิทธิภาพของทรัพยากร js และ css ทั้งหมดจะได้รับผลกระทบและหากคุณมีไฟล์ขนาดใหญ่นั่นจะทำให้คุณช้าลง

ทั้งสองดูเหมือนโซลูชันที่ยอดเยี่ยมและสง่างาม - ขึ้นอยู่กับความต้องการของคุณ


1

ฉันใช้CTRL- SHIFT- DELETEซึ่งเปิดใช้งานคุณลักษณะความเป็นส่วนตัวช่วยให้คุณสามารถล้างแคชรีเซ็ตคุกกี้ ฯลฯ ทั้งหมดในครั้งเดียว คุณสามารถกำหนดค่าเพื่อให้ทำได้เพียงแค่เปิดกล่องโต้ตอบเพื่อขอให้คุณยืนยัน


1

ใน Firefox รุ่นที่สูงกว่าเช่น Nightly มีตัวเลือกที่ชื่อว่า "ปิดการใช้แคช" คุณสามารถค้นหาได้โดยคลิกที่เฟือง และตัวเลือกนั้นทำงานได้เฉพาะในเซสชันปัจจุบันซึ่งหมายความว่าเมื่อคุณปิดตัวตรวจสอบและเริ่มต้นใหม่คุณต้องตรวจสอบอีกครั้งหากคุณต้องการปิดการจับ


ฉันหวังว่าจะมีวิธีปิดการใช้งานแคชทั่วโลก มันน่ารำคาญมากที่ต้องตรวจสอบทุกครั้งที่ฉันเปิดสารวัตร
Carlos Garcia

0

หลังจาก 2 ชั่วโมงในการค้นหาทางเลือกต่าง ๆ นี่คือสิ่งที่เหมาะกับฉัน

ความต้องการของฉันคือปิดใช้งานการแคชไฟล์ js และ css ในเว็บแอปพลิเคชันที่มีการรักษาความปลอดภัยในฤดูใบไม้ผลิของฉัน แต่ในเวลาเดียวกันการแคชไฟล์เหล่านี้ "ภายใน" เซสชั่นเฉพาะ

การส่งรหัสที่ไม่ซ้ำกับคำขอทุกครั้งเป็นหนึ่งในแนวทางที่แนะนำ

และนี่คือสิ่งที่ฉันทำ: - แทนที่จะ

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

ฉันใช้

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

ข้อเสียใด ๆ ของวิธีการดังกล่าวข้างต้นยินดีต้อนรับ ปัญหาด้านความปลอดภัย ?


0

ใน firefox 45 ตัวเลือกแคชดิสก์สามารถตั้งค่าได้โดยการเปลี่ยนค่าของ: browser.cache.disk.enable

สามารถตั้งค่าในหน้า "about: config"

ในhttp://kb.mozillazine.org/About:config_entries#Browserฉันพบคำอธิบายต่อไปนี้สำหรับ "browser.cache.disk.enable":

จริง (ค่าเริ่มต้น): ใช้ดิสก์แคชมากถึงความจุที่ระบุใน browser.cache.disk.capacity เท็จ: ปิดใช้งานแคชดิสก์ (ผลเช่นเดียวกับการตั้งค่า browser.cache.disk.capacity เป็น 0)


0

ประการแรกสิ่งนี้สามารถทำได้อย่างง่ายดายเช่นโดย PHP เพื่อบังคับให้เบราว์เซอร์ต่ออายุไฟล์ตามวันที่แคช (เวลาหมดอายุ) หากคุณต้องการเพียงแค่ความต้องการทดลองให้ลองใช้ ctrl + shift + del เพื่อล้างแคชทั้งหมดภายในเบราว์เซอร์ Firefox วิธีที่สามคือใช้ส่วนเสริมที่ออกจาก Firefox เพื่อล้างแคชตามเส้นเวลา

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