ในระหว่างการพัฒนาฉันต้อง "ล้างแคช" ใน Firefox ตลอดเวลาเพื่อให้มันใช้ไฟล์ JavaScript เวอร์ชันล่าสุด
มีการตั้งค่าบางอย่าง (about: config) เพื่อปิดการแคชสำหรับไฟล์ JavaScript หรือไม่? หรือถ้าไม่ใช่สำหรับไฟล์ทั้งหมด?
ในระหว่างการพัฒนาฉันต้อง "ล้างแคช" ใน Firefox ตลอดเวลาเพื่อให้มันใช้ไฟล์ JavaScript เวอร์ชันล่าสุด
มีการตั้งค่าบางอย่าง (about: config) เพื่อปิดการแคชสำหรับไฟล์ JavaScript หรือไม่? หรือถ้าไม่ใช่สำหรับไฟล์ทั้งหมด?
คำตอบ:
ป้อน "about: config" ในแถบที่อยู่ Firefox และตั้งค่า:
browser.cache.disk.enable = false
browser.cache.memory.enable = false
หากมีการพัฒนาในท้องถิ่นหรือใช้แอตทริบิวต์รายการใหม่ของ HTML5 คุณอาจต้องตั้งค่าต่อไปนี้ใน about: config -
browser.cache.offline.enable = false
Web Developer Toolbarมีตัวเลือกที่จะปิดการใช้งานแคชซึ่งจะทำให้มันง่ายมากที่จะเปิดและปิดเมื่อคุณต้องการมัน
คุณได้ลองใช้CTRL- F5อัปเดตหน้าเว็บแล้วหรือยัง
ไม่มีตัวเลือกเฉพาะในการปิดใช้งานการแคชสำหรับ JavaScript เท่านั้นคุณจะต้องปิดใช้งานการแคชทั้งหมด
FireBugมีตัวเลือกให้ปิดใช้งานแคชเบราว์เซอร์บนเมนูแบบเลื่อนลงของแท็บเครือข่าย
ในหน้าเดียวกันคุณต้องการปิดการใช้งานแคชทำสิ่งนี้: FYI: รุ่นที่ใช้งานอยู่คือ 30.0
คุณสามารถ :
หลังจากนั้นมันจะโหลดหน้าเว็บจากหน้าเว็บของคุณเอง (คุณเปิดอยู่) และทุกสิ่งจะถูก recached และคำขอใด ๆ ที่ถูกจัดทำใหม่จะถูกเรียกคืนทุกครั้งด้วยเช่นกันและคุณอาจเปิดให้นักพัฒนาเว็บเปิดอยู่เสมอ .
เครื่องมือสำหรับนักพัฒนา Firefox 48
ช่วยให้คุณปิดแคชเฉพาะเมื่อเปิดกล่องเครื่องมือซึ่งเหมาะสำหรับการพัฒนาเว็บ:
https://stackoverflow.com/a/27397425/895245มีเนื้อหาที่คล้ายกัน แต่การเปลี่ยนตำแหน่งเปลี่ยนไปเล็กน้อย
หากคุณกำลังทำงานกับรหัสฝั่งเซิร์ฟเวอร์คุณสามารถสร้างตัวเลขสุ่มและต่อท้าย src ในลักษณะดังต่อไปนี้ ....
src = "yourJavascriptFile.js? randomNumber = 434534"
ด้วย randomNumber ที่ถูกสร้างแบบสุ่มในแต่ละครั้ง
ฉันรู้ว่าฉันฟื้นคืนชีพคำถามโบราณ แต่ฉันพยายามที่จะแก้ปัญหานี้ในวันนี้และมีทางเลือกอื่น การสลับการแคชเมื่อฉันต้องการทดสอบนั้นไม่เป็นที่ยอมรับสำหรับฉันและอย่างที่คนอื่นพูดถึงการรีเฟรชอย่างหนัก (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
นี่เป็นการบังคับให้เบราว์เซอร์ของลูกค้าของฉันอัปเดตแคชภายในเครื่องเมื่อพวกเขาเห็นการสืบค้นใหม่ แต่เก็บแคชสำเนาใหม่จนกว่าจะมีการอัปเดตไฟล์อีกครั้ง
กลยุทธ์ที่ดีที่สุดคือการออกแบบเว็บไซต์ของคุณเพื่อสร้าง URL ที่ไม่ซ้ำกับไฟล์ JS ของคุณที่ได้รับการรีเซ็ตทุกครั้งที่มีการเปลี่ยนแปลง วิธีนี้จะแคชเมื่อไม่มีการเปลี่ยนแปลง แต่จะทำการโหลดซ้ำเมื่อมีการเปลี่ยนแปลงเกิดขึ้น
คุณจะต้องปรับแต่งสำหรับเครื่องมือสภาพแวดล้อมเฉพาะของคุณ แต่ถ้าคุณใช้ PHP / Apache นี่เป็นทางออกที่ยอดเยี่ยมสำหรับทั้งคุณและผู้ใช้ปลายทาง
http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/
คุณสามารถใช้CTRL- F5เพื่อโหลดซ้ำโดยการข้ามแคช
คุณสามารถตั้งค่ากำหนดใน firefox ไม่ให้ใช้แคช
network.http.use-cache = false
คุณสามารถตั้งค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อส่งส่วนหัวแบบไม่แคช / หมดอายุ / ควบคุมแคชสำหรับไฟล์ js
นี่คือตัวอย่างสำหรับ apache เว็บเซิร์ฟเวอร์
มีข้อดีข้อเสียของสองโซลูชั่นล่าสุดที่โพสต์ แต่พวกเขาทั้งสอง IMHO โซลูชั่นที่ยอดเยี่ยม
คุณอาจหรือไม่ต้องการรหัสเซสชันของคุณฝังอยู่ใน URL ของคุณเพื่อความปลอดภัยที่เข้มงวดยิ่งขึ้น แต่ในการพัฒนาที่ไม่สำคัญ แต่ถ้าคุณลืมที่จะลบมัน? มันใช้งานได้จริงเหรอ? คุณจะไม่ต้องการอะไรเช่นเครื่องกำเนิดตัวเลขตามลำดับ (จำนวนการเข้าชมที่เก็บไว้ในเซสชั่นหรือแม้กระทั่งถ้า 1 ถึง 0 ถ้า 0 จาก 1)
การเพิ่ม session id (หรือซีเควนอะไรก็ตาม) หมายความว่าคุณต้องจำไว้ว่าให้เพิ่มมันเข้าไปในทุก ๆ ทรัพยากรที่คุณไม่ต้องการแคช ในอีกด้านหนึ่งจะดีกว่าเพราะคุณสามารถใส่รหัสเซสชันของคุณกับทรัพยากรที่คุณกำลังพัฒนาและทดสอบอยู่ ในทางกลับกันหมายความว่าคุณต้องทำเช่นนั้นและคุณต้องจำไว้ว่าต้องลบมันออกเพื่อการผลิต
การแก้ไขไฟล์ vhost.conf หรือไฟล์. htaccess นั้นเป็นการหลอกลวงโดยไม่จำเป็นต้องจำเพื่อเพิ่มและลบรหัสเซสชัน แต่ข้อเสียคือประสิทธิภาพของทรัพยากร js และ css ทั้งหมดจะได้รับผลกระทบและหากคุณมีไฟล์ขนาดใหญ่นั่นจะทำให้คุณช้าลง
ทั้งสองดูเหมือนโซลูชันที่ยอดเยี่ยมและสง่างาม - ขึ้นอยู่กับความต้องการของคุณ
ฉันใช้CTRL- SHIFT- DELETEซึ่งเปิดใช้งานคุณลักษณะความเป็นส่วนตัวช่วยให้คุณสามารถล้างแคชรีเซ็ตคุกกี้ ฯลฯ ทั้งหมดในครั้งเดียว คุณสามารถกำหนดค่าเพื่อให้ทำได้เพียงแค่เปิดกล่องโต้ตอบเพื่อขอให้คุณยืนยัน
ใน Firefox รุ่นที่สูงกว่าเช่น Nightly มีตัวเลือกที่ชื่อว่า "ปิดการใช้แคช" คุณสามารถค้นหาได้โดยคลิกที่เฟือง และตัวเลือกนั้นทำงานได้เฉพาะในเซสชันปัจจุบันซึ่งหมายความว่าเมื่อคุณปิดตัวตรวจสอบและเริ่มต้นใหม่คุณต้องตรวจสอบอีกครั้งหากคุณต้องการปิดการจับ
หลังจาก 2 ชั่วโมงในการค้นหาทางเลือกต่าง ๆ นี่คือสิ่งที่เหมาะกับฉัน
ความต้องการของฉันคือปิดใช้งานการแคชไฟล์ js และ css ในเว็บแอปพลิเคชันที่มีการรักษาความปลอดภัยในฤดูใบไม้ผลิของฉัน แต่ในเวลาเดียวกันการแคชไฟล์เหล่านี้ "ภายใน" เซสชั่นเฉพาะ
การส่งรหัสที่ไม่ซ้ำกับคำขอทุกครั้งเป็นหนึ่งในแนวทางที่แนะนำ
และนี่คือสิ่งที่ฉันทำ: - แทนที่จะ
<script language="javascript" src="js/home.js"></script>
ฉันใช้
<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>
ข้อเสียใด ๆ ของวิธีการดังกล่าวข้างต้นยินดีต้อนรับ ปัญหาด้านความปลอดภัย ?
ใน 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)
ประการแรกสิ่งนี้สามารถทำได้อย่างง่ายดายเช่นโดย PHP เพื่อบังคับให้เบราว์เซอร์ต่ออายุไฟล์ตามวันที่แคช (เวลาหมดอายุ) หากคุณต้องการเพียงแค่ความต้องการทดลองให้ลองใช้ ctrl + shift + del เพื่อล้างแคชทั้งหมดภายในเบราว์เซอร์ Firefox วิธีที่สามคือใช้ส่วนเสริมที่ออกจาก Firefox เพื่อล้างแคชตามเส้นเวลา