Başlıkları If-Modified, önbellekli içeriği geçersiz?

3 Cevap php

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:

  1. Talebi yapılır, taze içerik ile 200 OK yanıtı
  2. Daha sonraki istekler bir 304 yanıt almak ve tarayıcı önbelleği çeker
  3. İÇERİK sunucuda DEĞİŞTİRİLDİĞİNDE
  4. 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ı
  5. 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ı:

  1. "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)

  2. "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.

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

3 Cevap

Sana this page üzerine örnek # 2 Çıkış içeri gelen tüm istekleri başlıklarını değiştirmek istiyorum düşünüyorum.

Jquery script ve PHP script arasındaki önbelleğe bazı düzeyde benziyor. Ben tarayıcı düzeyinde önbelleğe şüpheli olur. (Teorik olarak olabilir ancak proxy caching, sanırım)

Elle AJAX isteği denemek için eğilen veya bir web tarayıcısı kullanarak denediniz mi?

Sunucu komut herhangi bir modifiye içeriği almak için xmlHTTPrequest aracılığıyla isteklerini yaparken sorgu dizesi sonunda değiştiren bazı değişken eklemeniz gerekir.

Örneğin script ise

mydomain.com/myscript.php

sonra en Jquery Ajax bir istek yapmak için diyelim yoluyla aramak için bir yol

mydomain.com/myscript.php?t=[some_value].

Genellikle [t] milisaniye şimdiki zaman veya başka bir numara olabilir.

Diğer bir deyişle benzersiz bir URL XMLHttpRequest nesnesi üzerinden bir istek göndermek her zaman oluşturmak için deneyin.

Cache-Control başlık için gibi bakmak gerektiğini daha fazla seçenek vardır.

Selamlar,