Aşağıdaki HTML'yi bir tarayıcıda alırken, tarayıcı tarafından ana kapsamda yapılan XHTTP isteklerinin önbellek denetimi başlığı ayarlanır, ancak zaman aşımı geri çağrısından yapılan istekte bulunmaz. Bu, önbellek olmadıkça ikinci kaynağın her zaman önbellekten yüklenmesine neden olur. Geri aramada isteği neden önbellek başlıklarını böyle etkiler? Bir XMLHttpRequest ürününün geri aramadan yapılması önbelleğe almayı nasıl etkiler?
<!DOCTYPE HTML>
<html>
<body>
<script type="text/javascript">
var get = function (url) {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", url, true);
xhttp.send();
}
get("resource1.html"); // Cache-control set
setTimeout(function() {
get("resource2.html"); // Cache-control not set
}, 10);
get("resource3.html"); // Cache-control set
</script>
</body>
</html>
(Bütün makineler ve tarayıcılar ben el altında olması ve sonuçlar oldukça tutarlıdır bu test ettik. Bunun tek istisnası Firefox ise geri arama kaynak için bir -denetimi başlığı ayarlamak gibi görünüyor olmasıdır zaman aşımı, diğer tarayıcıların hala yapmadığı
0
olarak ayarlanmıştır.
Tarayıcının yanıtında değil, tarayıcının isteğinde ayarlanan "önbellek denetimi" başlıklarını soruyorum. Eğer 'console.log (req.path, req.headers [" önbellek kontrolü "]);' 'yi'/resource./'Işleyicinize eklerseniz, tarayıcı önbelleğini temizler ve yeniden yüklerseniz, ' resource2.html '' önbellek-denetimi' başlığına sahip değil. –
Soru muğlaksa özür dilerim. Netleştirmek için metni düzenledim. –
@IanMackinnon [güncellendi] hangi tarayıcı kullanıyorsunuz? Gizli modda denediniz mi? – malix