AJAX autorefreshes kullanarak bir web uygulaması üzerinde oturumları aşımından Yaklaşımlar

3 Cevap php

Ben belirli aralıklarla bir AJAX çağrısı ile veri autorefreshes bir web uygulaması yazıyorum.

O yapıyor çünkü son etkinlik her ajax çağrısı ile yenilenir olduğundan, sunucu tarafında kullanıcı oturumları, zaman aşımına asla.

Iyi istemci tarafı kuralları ben kullanıcıyı zaman aşımına uygulamak var mı? Yani Ben, vb tarayıcı fare hareketleri izlemek gerekir, ya da ben AJAX oturumu yenilemek yok URL'lerin aramaları işaret etmelidir?

Ben de kullanıcı, vb kaydedilir doğrulamak olabilir çünkü benim AJAX çağrıları, bir oturum etkin URL vurmak istiyorum

Herhangi bile kullanıcıların zamanlamayı rahatsız olup olmadığını açısından düşünceler?

3 Cevap

Ben kullanmış olduğunuz bir teknik: AJAX arasındaki aralığı artırmak bir arama yapıldığında her zaman çağırır. Yani 10 saniye sonra ilk AJAX arama yapmak, sonra sonra 13, 11 saniye bekleyin, ardından 16, 20, 25, vs .. (ya da benzer bir model). (Bazı JS olay kaydederek bulundu) sayfa etkinlik var her zaman, geri başlangıç ​​değerine (örneğin 10 saniye) aralığını sıfırlamak.

AJAX aralığı aşımı süresinden daha uzun olduğunda Bu teknik, bir süre için tarayıcı dokunmayın kullanıcıların sonunda zaman aşımına neden olur. Ek bir avantaj olarak, r sunucu yükleri çıkarmak olacak - bir kullanıcı uzun süre açık tarayıcı penceresini terk ederse, onlar zaman aşımına uğramadan önce daha az ve daha az istekleri yapacağız.

Ben onlar hareketsizlik bir süre sonra JavaScript ile hala aktif olduklarını doğrulamak için kullanıcı istemi. Hareketsizlik "fare veya pencereye gönderilen anahtar mesajlar" olarak tanımlanır. Onlar zaman belirli bir süre sonra istemine yanıt başarısız olursa, ben bir işaret-out sayfasına yönlendir.

Benim jQuery UI tabanlı uygulama bulunabilir here.

Ben tarayıcıda bir "son eylem" damgası korumak ve kalp atışı ile tekrar sunucuya bu göndererek yaptık. Sunucuda Sonra kullanıcı çok uzun boşta kaldıysa çıkış rutinleri çağırarak, bu değer ve şimdiki zaman arasındaki farka dayalı bir zaman aşımı kontrol edin. Oturum aşımına sonra kalp atışı sonuç oturumu artık sunucu üzerinde oturum gibi, herhangi bir kullanıcının belirli bilgileri silinir, sayfayı yeniden tarayıcı tetikler.

Kullanıcı farklı "son eylemi" damgaları gönderme aynı tarayıcıda birden fazla sekme açık olsaydı ben bu yaklaşım ile çözmek zorunda iki ana problem, sunucu ve istemci tarih fonksiyonu uygulamalarında ve en son eylem takip zaman dilimleri farklı yorumlar yapıldı sunucuya geri.