Onunload olay olmadan içinde site navigasyon yanıt olarak veri kaydetme işlemek için önerilen bir yaklaşım var mı?

2 Cevap php

Preamble to scope my question:

Ben bir web uygulaması dinamik tarayıcıda UI içerik bölümünü yüklemek için yoğun jQuery ve AJAX kullanır (veya siteyi, bu bir iç LAN sitedir). Bir kullanıcı navigasyon menüsünü kullanarak uygulamayı gider. Navigasyon menüsünde bir öğeyi tıklatarak php için bir AJAX arama yapar ve php ardından merkez içerik bölümünü doldurmak için kullanılan içeriğini döndürür.

Sayfalarından birini kullanıcı içine girilir ki, bir tablo gibi ayarlanmış bir tablo formu vardır php geri hizmet. Bu tablo her zaman veritabanındaki verileri ile senkronize tutulur. Yani, tablo oluşturulduğunda, o ilgili veritabanı veri ile doldurulur olduğunu. Kullanıcı bir "hücre" bir değişiklik yapar o zaman, bu değişiklik hemen geri veritabanına yazılır böylece tablo ve veritabanı senkronize her zaman vardır. Bu yaklaşım girdikleri verileri (uzun hikaye ...) kaydedildiğini kullanıcılara güven almak, ve bir tür kaydetmek düğmesini tıklatın zorunda onları hafifletmek için.

Yani, bu her zaman senkron fikri bir kullanıcı, bir hücreye bir değer girin hücreden dışarı odak alamaz, ve o son değer kaybolmasına neden olacak eylemlerin herhangi bir sayı alabilir dışında, harika: örn vs, navigasyon menüsü üzerinden başka bir bölüme gidin app oturumu, tarayıcıyı kapatmak

End of preamble, on to the issue:

Ben başlangıçta sadece veri kaydedilir "kirli" ya da değil ne izlemek istiyorum, ve sonra onunload olay ben veritabanına bir son yazma yapacağını çünkü bu, bir sorun olmadığını düşündüm. Burada ovmak yatıyor: çünkü benim (emin, o kadar zeki değil ya da değil) akıllı AJAX kullanımı ve yukarıdaki işlemler dışında, alındığında dinamik içerik bölümünü, kullanıcı aslında hiç orijinal url bırakır, ya da sayfa, yükleme ve tarayıcıyı kapatarak. Bu nedenle, onunload olayı değil, ve ben yine son verileri kaybetme geri duyuyorum.

My question, is there a recommended way to handle figuring out if a person is navigating away from a "section" of your app when content is dynamically loaded this way?

Ben küresellerle ve şu anda görüntülenen sayfayı takip gerektirir bence bir çözüm ile gelip, ama orada daha zarif bir çözüm olabilir eğer ben kontrol ediyorum, ya da benim tasarım yapabilir bir değişiklik, o yapmak düşündüm bu iş.

Her zaman olduğu gibi şimdiden teşekkürler!

2 Cevap

Ben durumda herkes ilgilendi sadece burada, takip etmek istedim. Benim soru gereksiz olduğu ortaya çıktı.

Benim kod giriş elemanı için değişiklik halinde girilen bilgileri kaydetmek için kurmak ve değiştirme olayı bu yana sadece yangınları söz konusu eleman odağı kaybettiğinde, o zaman kullanıcı benim web uygulama arayüzü başka bir yerde tıklarsa, o Çünkü girişi için değişim olayı patlar ve veriler kaydedilir.

Onlar sayfayı yenileyin eğer tek istisna vardır, ya da tarayıcıyı kapatmak, ancak bu olayların her ikisi de ben bu olay benim kurtarışla veri işlevini bağlamak ve bu durumlarda işleyebilir, yani bir onunload olayına neden yok.

Yani her şey ümit ediyordum olarak çalışır ve benim karışıklık değişim olayı ne zaman bir yanlış anlama ortaya çıktı.

AJAX normalde site navigasyon için overkill. AJAX kullanmak için zorlayıcı bir neden olmadıkça, ben sadece navigasyon menüsü eski bağlantıları yerine AJAX aramaları kullanmak olur.

AJAX bir tam sayfa yenileme vb titremeleri görmeden bir uygulama dalmış kullanıcı tutmak için kullanılır. Onlar başka bir sayfaya gitmek için planlıyorsanız Ancak, tam sayfa yenileme beklenen (ve dolayısıyla arzu).