Ben tuhaf bir sorun yaşıyorum:
PHP SCRIPT:
// checks If-Modified-Since header (if nothing has changed)
// Sends HTTP/1.0 304 Not Modified
// Sends Cache-control: public, must-revalidate
// exits
// if NO If-Modified-Since or something has changed
// builds content
// Sends Last-Modified: [DATE TIME]
// Sends Cache-control: public, must-revalidate
// exits
Ben talep üzerine içerik yenileme girişimi için jQuery AJAX kullanıyorum, ben değiştirerek bunu yapmak için çalışıyorum If-Modified-Since geçmişte bir tarih saat ile başlığında, "beforeSend" param kullanarak.
Bu şu anda ne olur:
- Talebi yapılır, taze içerik ile 200 OK yanıtı
- Daha sonraki istekler bir 304 yanıt almak ve tarayıcı önbelleği çeker
- İÇERİK sunucuda DEĞİŞTİRİLDİĞİNDE
- Bir isteği ile yapılır yapılması durumunda-Modified-Since başlığında (hayır URL dizesi değiştiren), taze içerik ile 200 OK yanıtı
- Adım # 1 eski içerik almak gibi görünüyor (-Modified-Since varsa başlığındaki değiştirmeden) sonraki istekleri
Ben adım # 4 at, tarayıcılar içerik i ne eksik, tazelenmiş olması gerektiği izlenimi altında im sanırım?
Ben kurulum küçük bir test deneyin ve ne demek istediğimi görebilirsiniz: http://tweetplenty.com/test/test2.php ... kullanım FF ve kundakçı siz im olarak console.log kullanarak eğer (...) Burada operasyonların sırası:
"normal" bağlantısını değiştirmeden http://tweetplenty.com/test/test.php bir istek yapacak değişiklikte-beri ... "normal" bağlantısını dönmelidir kullanarak sonraki istekleri bir 304 (200 Tamam her 60 saniyede dönmelidir)
"değişiklikte-beri" linkine İLE http://tweetplenty.com/test/test.php bir istek yapacak modifiye beri varsa-başlığında, tarayıcı yeni içeriği dönecektir güncellenmiştir.
Bu noktada "normal" tekrar tıklayarak önceden önbelleğe alınan verileri döndürür, bunu "değişiklikte-beri" linkine tıkladıktan sonra verileri yenilenir olması gerektiğini düşünürdüm.
Eğer test komut dosyaları kendileri çıkış istiyorsanız buyurun: http://tweetplenty.com/test/test.zip