jQuery - yeni veri tarayıcı oturumunda masaya saklanan zaman sayfayı yenileyin

1 Cevap php

Çevre: PHP / MySQL / JQuery

Her bir dakika için kontrol: yeni veri depolar tabloya için (new_entry_table ex): Ben sayfası (index.php eski) yenilemek istiyorum. Aynı sayfada yeni veri ortaya çıktığında tüm yenileme almalısınız bir anda birçok makineleri (pc-tarayıcılar) açılacak.

i aşağıdaki çalıştı jquery ve veritabanı kontrol kullanarak:

setInterval(function(){
$.post("new_data_check.php", function(data) { 
   if(data > 0){ 
       $("#container").fadeOut('fast').load(location.reload());
   } 
   });
   return false;
},60000);

new_data_check.php:
: checks for new data in the test_db where newdata_field=0 ;
: If any new data arises echo "1"; And update the newdata_field=1; to stop constantly refreshing the page.
: else echo "0";
: Just for a trigger

Herhangi bir tetikleyici onun alıyorum yenileme sadece tek seans açıldı (diğer tarayıcısı veya diğer pc) diğer açılan oturumları yenilenir almıyorum container.But yenilenir ortaya Yani yukarıdaki jquery kod kontroller, tetikleyici için her 1 dk new_data_check.php.

Bunu yapmak için daha iyi bir yol önermek. Teşekkürler.

1 Cevap

Sizin new_data_check.php dosya bağımsız sayfasını görüntülerken tüm kullanıcıları takip etmek gerekir.

Eğer değilse, bu olacak:

  • Kullanıcı 1 ve Kullanıcı 2 hem siteye giriş yapmış.
  • Kullanıcı 1 Kullanıcı 1 öncesinde, yeni veriler var onay 5 saniye yapar.
  • Kullanıcı 1 onun isteği tamamlar. Sunucu yeni_veri biraz temizler.
  • Kullanıcı 2'nin istek 5 saniye sonra geldi. Hedoes onun isteği, ancak bu noktada, Kullanıcı 1 O'nun eskiyen veridir. 0 yeni_veri alanını belirledi, ancak Kullanıcı 1 etkin onu ko-seçmiştir.

O bakışlarla, kullanıcıyı tanımlamak istiyorum herhangi bir bilgi tedariki değiliz - sunucu IP adresini kullanarak o belirleyen sürece. Bu durumda ise, küçük bir ağ arkasında herkes aynı dış IP adresine sahip olacak olasılıkla olduğunu hatırlıyorum. Bu yüzden ayrı bir ofis insanları söyleyemem.

Neler yapabileceğini her oturum için benzersiz karma çeşit üretmek ve tarayıcıya kapalı olduğu geçmektedir. Javascript sonra php komut dosyası aynı belirteci sağlayabilir.

Özel bit her türlü olmadan başka bir çözüm, isteği ile bir zaman damgası iletmekten olacaktır. Esasen, istemci sunucu daha sonra kontrol "verinin en son benim bit 21:21:53 de geldi" ve yanıt verir "diyor sen hala iyisin yani Benim en son veriler, bundan önce yaratılmıştır." Ya da "Ben var 21:22:53 oluşturulmuş veya değiştirilmiş bir şey, bunu yüklemeniz gerekir. "

Bu yöntemle, kim kimin hakkında endişelenmenize gerek yoktur. Bunun yerine, yıpranmışlık için kontrol ediyoruz veriler üzerinde değişiklik / oluşturma kez olması gerekir. Daha iyisi, müşterilerine tarih ve saat bilgilerini güvenmiyorum - Ayrıca emin müşterilerine saati doğru senkronize edilir emin olmak gerekir. Belki daha sonraki isteklerde iletmekten bir zaman damgası ile komut sağlamak için new_data_check.php kullanmaktadır.