Sayfalar arasında kontrol kutularını Hatırlamak - en iyi yolu nedir?

1 Cevap php

Ben öğelerin bir listesini onay kutularını sonuçlarının çoklu sayfalar arasında hatırladı ve uzağa gidiyor ve geri sonuç gelirken olduğu Gmail'e benzer işlevler eklemek gerek ediyorum. Ne olduğunu anlamaya çalışıyorum bunu yapmanın en iyi yoludur. Ben PHP ve büyük olasılıkla jQuery kullanıyorum.

Benim ilk düşünce geri oturumda bir dizi id depolayan sunucuya bir AJAX çağrısı tetikleyen her onay kutusunu bir onClick eklemektir. Öğelerin bir listesini yüklenen her zaman, sistem satır işaretli olup olmadığına bakın ve gerekirse onay kutusunu kontrol için kontrol ediyorum. Güvenilirlik için, onay kutusunu kontrol ettikten sonra denetlenmeyen olacağını sunucuya istek (bağlantı sorunu, sunucu hatası, vb) tamamlanmış olamaz ve istek kesinlikle mümkün olduğunca çabuk yapılmış olsaydı.

Bu birkaç madde dışında tüm sesler iyi:

  • Hepsini kontrol: ne olur? Bu sunucu 30 (varsayılan sayfa öğelerini) istekleri gönderiyor mu? Yoksa onClicks yeniden eklemeniz ardından, kimlikleri hepsi ile sunucuya bir istek göndermek, onay kutularını kontrol, onClicks tüm kaldırırım? Ya da ...? Tüm işaretini ile benzer bir sorun.
  • Hız: Kullanıcıların 100s tüm zaman kontrol ve unchecking eğer sorunlar var başlayabilir
  • tarayıcı hız: Bir sayfada 500 veya daha fazla öğe varsa bunu ben düşünüyorum sayfa yükler, sonra JS ile onClick eklemek için en iyi düşünüyorum, bir ikinci veya 2 sürebilir. Çek ile tüm büyük bir sorun olacak.

Geçmişte ben kullanıcı bir sayfa ayrıldığında algılamak için güvenilir bir yol bulamadı. Güvenilir bir yol varsa, o zaman ben sadece her sayfa boşaltma ile ilgili kayıtları yüzden bu bir seçenek olarak görebiliyordu.

Başka herhangi bir çözüm ya da daha iyi yöntemler var mı?

Edit: Eran Galperin tarafından belirtildiği gibi, çek tüm yöntem sadece onay kutularını her kontrol ve daha sonra tüm satırları ile bir ajax arama yapmak gerekir. OnClick kaldırmak gerek yok.

Olay Heyeti yöntem iyi bir fikir-olmaz şeyler çok daha kolay olduğu gibi, aynı zamanda, o görünüyor.

1 Cevap

  1. Eğer programmaticaly bir onay kutusu ve kontrol durumunu değiştirmek zaman onclick olayı tetikleyecek değil. Bir kullanıcı tüm / uncheckall bağlantı kontrol tıkladığında tek tek onay kutuları bağlı tıklama olayları endişesi olmadan, farklı bir AJAX isteği gönderebilirsiniz.
  2. Tıklama başına bir isteği kullanarak bu takas yöntemidir. Alternatif olarak tüm formu kaydeden bir "Save" düğmesini kullanın.
  3. Tüm onay kutularını tutan tüm kaba bir onclick olay eklemek ve bir onay kutusu tıklandığı görmek için olayın hedef kontrol - event delegation kullanın. Ayrıca, şahsen ben aynı sayfada 500 farklı seçeneklerini gösteren önleyeceğini. Kesinlikle gerekli kadar çok seçenek var, birkaç bölgeleri / sayfalarına onları yıkmak.

Sayfa bırakarak bir kullanıcı için, tarayıcı çöküyor veya başka çıkar ancak eğer ungracefully yakalanmış olmayacak, onbeforeonload olayı kullanabilirsiniz. Kullanıcı değişiklikleri yakalamak edebilmek için ne kadar önemli olduğuna bağlı olarak kullanın.