Kullanıcı Oturum kapatmada Prototype.js Ajax.PeriodicalUpdater durdurun

2 Cevap php

Ben prototype.js gelen Ajax.PeriodicalUpdater ile her 30 saniyede bir yenilemek "online kullanıcılar", bir liste var.

Bir sorun, bir kullanıcı site ile açık iki sekme / pencere varsa, bunlardan biri dışında günlükleri vardır, PeriodicalUpdater iptal edilmez.

Bu da o yönlendirir huzurlu bir kimlik, gibi PeriodicalUpdater, tüm giriş sayfası ile benim blok elemanı güncellemeleri anlamına gelir.

Ben PHP oturumları kullanıyorum, ve ben gerçekten düz bu bir başımı alamıyorum.

Aranızda bana doğru yönde işaret edebilir?

2 Cevap

Ben bunu erişmek için kimliği doğrulanmış oturum gerektirmez, böylece sonuçları döndürür yöntemini değiştirmeyi düşünebilirsiniz, ama doğrulanmış bir oturum vardır sadece geçerli bilgi verir. Aksi takdirde, bu güncellemeleri sona gerektiğini gösteren bir değeri ve online kullanıcı bloktaki ekran için uygun bir mesaj döndürür. Kötü bir şey değil - - ve JSON parçası olarak bir HTML pasajı ile birleştirmek veya basitçe beri (daha JSON veri istemci üzerinde HTML IMO inşa ya bu muhtemelen yerine JSON dönmek gerekiyordu anlamına gelir görünüm işaretlemek yapmak için doğru yer) olduğunu.

PE oluştururken, buna bir başvuru tutmak:

// At global scope, or ideally if you have a namespaced object, use that
var thePE;

// Where you create the PE
thePE = new PeriodicalExecuter(yourFunction, 3);

Bunu durdurmak istediğiniz zaman, (o başlanmıştır varsayarak) durdurmak için söyle:

if (thePE) {
    thePE.stop();
    thePE = undefined;
}

(PeriodicalExecuter # durak docs here.)