2010-11-20 70 views
3

Kullanıcı sayfadan çıktığında bir yayın sorgusu gerçekleştirmeye çalışıyorum. Üzerinde çalıştığım kodwindow.onönetim oluşturma sorgusu

Burada yaptığım şeyle ilgili bir sorun var mı? FF hata konsoluna girdiğim sonuç sadece diğer ilgili olmayan fonksiyonların/değişkenlerin tanımlanmadığını (boşaltma olduklarından) söylüyor. Düzeltmem gerekenler için ipuçları veya işaretçiler var mı?

+1

Çalışıyor mu, çalışmıyor mu? – Alex

+0

Hayır, sohbete post.php? Leave = true bir veritabanı güncellemesi vermelidir. O değil. – Ryan

+0

Bir veritabanı çağrısı yapmak yerine, biraz kurabiye yaklaşımı al .. – kobe

cevap

5

basit bir cevabı güvenilir şekilde beforeunload olay bir zaman uyumsuz AJAX çağrısı yapmak olamaz o olacak çok tarayıcı çöp sayfasını toplar gibi, bitmiş önce muhtemelen sona erdirilebilir. Sen böyle bir senkron arama yapabilirsiniz:

$.ajax({ 
    type: "POST", 
    url: 'conversation.php?leave=true', 
    data:{ud:used}, 
    async: false 
}); 

olsa bunu yapmayın lütfen, gerektiğinde daha uzun süre sayfasında bulunan kullanıcı yakalar ve sonuçlanan bırakarak önler olarak olumsuz deneyim. Bu da tarayıcısını çalıştırırken tarayıcıyı kilitlediğini unutmayın, her durumda async: false kaçınılmalıdır.

+0

@Nick, async gerçek kullanımının ne olduğunu: false, gerçekten yararlı veya her yerde kullanılmış .. – kobe

+0

hmmm ... SADECE seçeneği sadece yapılan sorguyu gerçekleştirmek için ~ .006 saniye sürdüğü için. http://seewhosoutthere.com/conversation?leave=true – Ryan

+0

@ryan, her durumda doğru olmayabilir, internet bağlantısına, veritabanı yükünüze, web sunucusu yükünüze, vb. – kobe