SORU
28 Temmuz 2009, Salı


Ajax, geri düğmesi ve DOM güncellemeleri

Eğer javascript değiştirir DOM sayfa, kullanıcı gider sayfa B ve sonra hits geri düğmesi geri dönmek için sayfa A. Tüm değişiklikler için DOM sayfa kaybolmuş ve kullanıcı sunulan sürüm olduğunu ilk alınan sunucu.

Stackoverflow, reddit ve birçok diğer popüler web sitelerinde bu şekilde çalışır. (bu soru için test yorum eklemek, farklı bir sayfaya gidin deneyin ve geri vur geri gel düğme yorumunuz olacak "") gitti

Bu mantıklı, ancak bazı web siteleri (apple.com, basecamphq.com vb) bir şekilde tarayıcı kullanıcı sayfanın son durumu hizmet etmeye zorluyor. (http://www.apple.com/ca/search/?q=ipod, üst bağlantı Popülerlik ve geri düğmesi - DOM güncellemeleri korunmuş olacak) ' I söyle tıklayın

nerede tutarsızlık nereden geliyor?

CEVAP
28 Temmuz 2009, Salı


Cevap: diğer şeyler Arasındakaldırma olayları ileri/geri önbellek geçersiz olmasına neden.

Bazı tarayıcılar sözde tüm web Sayfası mevcut durumu store "" veya "page cache". bfcache Bu yeniden oluşturma yoluyla geri gidildiğinde Bu sayfa Çok hızlı ve ileri düğmeleri için onlara izin verir, ve DOM ve JavaScript değişkenlerin durumunu korur. Ancak, ne zaman bir sayfa içerir onunload olayları, bu olaylar olabilecek koymak sayfasına işlemeyen bir devlet, ve bu kadar sayfa yok kayıtlı bfcache ve olmalıdır yeniden (ama olabilir yüklü gelen standart önbellek) ve yeniden işlenen sıfırdan da dahil olmak üzere çalışan tüm yüklendiğinde işleyicileri. Bu bfcache üzerinden bir sayfa dönerken, DOM yüklendiğinde işleyicileri sayfa zaten yüklü olduğu için) ateş kalmadan önceki haliyle muhafaza edilmektedir.

Bu bfcache davranışını Cache-Control ve diğer HTTP başlıkları ile ilgili standart tarayıcı önbelleğini farklı olduğunu unutmayın. Birçok durumda, tarayıcılar, aksi takdirde standart önbellekte saklamak olmasa bile bfcache bir sayfa önbelleğe alır.

bir WordPress kullanmak bir pencere kaldırma olayı otomatik olarak ekler, ne yazık ki jQuery kullanarak DOM koruma bfcache içinde saklı olmaktan diskalifiye ve sayfa ileri/geri hızlı olacaktır. [Güncelleme: bu sadece IE için geçerlidir, böylece 1.4 jQuery] düzeltildi

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Attempts at least

    Attempts at

    1 Ocak 2007
  • Stevie

    Stevie

    2 Mayıs 2010
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008