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

  • NightShader1

    NightShader1

    25 Temmuz 2006
  • psidot

    psidot

    2 Kasım 2006
  • TeachMeComputer

    TeachMeCompu

    31 EKİM 2009