URL ที่มีคิวรีปิดใช้งานการแคชหรือไม่


12

การมีสตริงการสืบค้นติดอยู่กับ URL ทำให้เบราว์เซอร์ไม่เคยแคชหรือไม่ ตัวอย่างเช่นเว็บไซต์ของฉันทำสิ่งนี้:

/radar-picture.png?v=sep2013

และดูเหมือนว่า FireFox จะไม่เก็บภาพนั้นไว้ มันจะถูกดาวน์โหลดในทุกคำขอ

ฉันต้องการให้ FireFox ทำการแคชตราบเท่าที่มันต้องการ ฉันต้องการบังคับให้ดาวน์โหลดเฉพาะเมื่อv=พารามิเตอร์มีการเปลี่ยนแปลง


1
ฉันเดาว่าคุณสามารถทำสิ่งนี้ได้สำเร็จหากคุณเพียงแค่เปลี่ยนชื่อไฟล์แทนการสืบค้น ดังนั้นตอนนี้ชื่อไฟล์จะเป็นและเมื่อมีการเปลี่ยนแปลงในบางจุดในอนาคตมันจะเป็นradar-picture-sep2013.png radar-picture-jan2014.pngคุณสามารถกำหนดค่าอายุสูงสุดของ PNG เป็นหนึ่งปีดังนั้นหากไม่มีการเปลี่ยนชื่อไฟล์เบราว์เซอร์สามารถโหลดรูปภาพแคชเป็นเวลานาน
vstm

คำตอบ:


3

เพิ่มคู่คีย์แบบสอบถามสตริง / ค่ากับทรัพยากรคงที่ (เช่นรูปภาพ, CSS หรือจาวาสคริปต์) สามารถก่อให้เกิดปัญหาแคช

โดยเฉพาะเมื่อคุณพูดถึงFirefoxปัญหาของคุณอาจเกี่ยวข้องกับ 'Cache collision' โดยที่:

ฟังก์ชันแฮชแคชดิสก์ของ Firefox สามารถสร้างการชนกันของ URL ที่แตกต่างกันเพียงเล็กน้อยนั่นคือเฉพาะในขอบเขต 8 อักขระ เมื่อทรัพยากรแฮชไปยังคีย์เดียวกันทรัพยากรเพียงหนึ่งเดียวเท่านั้นที่จะถูกเก็บไว้ในดิสก์แคช ทรัพยากรที่เหลือซึ่งมีคีย์เดียวกันจะต้องถูกดึงข้อมูลใหม่จากการรีสตาร์ทเบราว์เซอร์ ดังนั้นหากคุณใช้การพิมพ์ลายนิ้วมือหรือสร้าง URL ไฟล์โดยทางโปรแกรมเพื่อเพิ่มอัตราการเข้าถึงแคชให้มากที่สุดหลีกเลี่ยงปัญหาการแฮชของ Firefox โดยตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณสร้าง URL ที่แตกต่างกันมากกว่า 8 ตัวอักษร

[ที่มา: https://developers.google.com/speed/docs/best-practices/caching ]


7
"ขอบเขตของอักขระ 8 ตัว" คืออะไรและฉันจะหลีกเลี่ยงการชนนี้ได้อย่างไร URL ของฉันควรเป็นอย่างไร
Andrew

2

คำตอบสำหรับ stackoverflow อ้างว่าเบราว์เซอร์บางตัวตอบสนองต่อการกด Enter ในแถบที่อยู่ที่แตกต่างกันและคลิกที่ลิงค์เมื่อ URL มีสตริงข้อความค้นหา: https://stackoverflow.com/a/85386/1145388

เมื่อคุณทำการทดสอบตรวจสอบให้แน่ใจว่าคุณคลิกที่ลิงก์แทนที่จะรีเฟรชหรือกดปุ่ม Enter ในแถบ URL


2
ฉันคิดว่าคำตอบใน stackoverflow อาจล้าสมัย เมื่อฉันใส่สตริงการสืบค้นลงใน stylesheets style.css?v=sep2013และ 150KiB background-image:url('bgimage.jpg?v=sep2013');การสำรวจไซต์ (ผ่านการคลิกลิงก์หรือพิมพ์ในแถบที่อยู่) นั้นช้ามากใน FireFox
นายสมิ ธ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.