2010-04-28 21 views
7

jQuery için en iyi otomatik tamamlama eklentisini tartışan birkaç makale/soru/forum okudum. Çok iyi olanları denedikten sonra, çoğu zaman bir kusur farkettim.jQuery/AJAX type-ahead/otomatik tamamlama

  1. Ülkeleri arıyorsanız ve 'Giriş' yazıyorsanız, birkaç ülke görünür. I-n-d-i-a yazmaya devam ederseniz, bu, 5 AJAX çağrısıyla sonuçlanır (bkz. http://www.freeimagehosting.net/uploads/6f1bcd69e1.png) Hindistan'ın bir Alt kümesi olduğu oldukça doğaldır, neden tekrar aramanız gerekir? Alınan liste istemcisini filtrelemeliyiz. Böyle bir uygulamayı bilen var mı?

  2. Jquery Otomatik Tamamlama özelliğinin durumu nedir? StackOverflow'ta Jquery ile artık mevcut olmadığını okudum; Ancak Jquery web sitesinin Otomatik Tamamlama bağlantısının yanında 'Yeni' işareti vardır.

Teşekkür

+0

Daha iyi bir eklenti yazmak için bir fırsat gibi görünüyor. Sadece ilk örneğin 10 yanıtın geri döndüğünü hayal ediyorum ve tüm indeksi elde etmek için istekte bulunmanız gerekiyor. Fakat eşik değerinden daha az cevap varsa, bunlar önerdiğiniz gibi yeniden kullanılmalıdır. –

+0

Bu, gerçekten sorgunuzu sonuna eklediyseniz, sahip olduklarınızı filtreleyebilirsiniz. Herhangi bir eklenti bu fikri henüz dikkate almıyor mu? Bu soru neredeyse iki yıl önce sorulmuştu ve cevabı bilmeyi merak ediyorum. – vbullinger

cevap

8

nedeniyle 1. olabilir içinde hakkında yazmak noktası:

  • 'In' aranıyor

    • sonuçlarının bir sürü dönmek shoudl bazı sınır yoktur yerinde, sunucu tarafında, N'den daha fazla geri dönmek için
    • Tam sayım listesi anlamına gelir Ries "In" o (kesinlikle) için "Ind" Başka Ajax isteği olmadan tekabül listesini almak mümkün değildir ima istemci tarafı
    • üzerine, bilinmemektedir içeriyor.

    Sıklıkla kullanılan bir yarım çözüm, bir tuşa basıldıktan hemen sonra bir Ajax isteği göndermemek, ancak yalnızca 100 veya 200 milisaniye sonra göndermektir.

    Bu şekilde, başka bir şey yazmadan önce kullanıcı türleri "Indi" hızlı ve bekler, sadece "Indi" ("In" için ve hiçbiri, "Ind")

    için 1 Ajax isteği, olacaksa
  • +0

    Ooh evet, bunu hiçbiri istekleri azaltmak için yaptım. Tartıştığınız senaryo geçerli, ancak bu düşük davranıştan kaçınmak için tanımlanmış parametreler olabilir. – Prasad

    3

    jQuery UI otomatik tamamlama, 1.8 sürümünde, proje etkinliğinde gördüğüm kadarıyla hala geliştirilmekte olana eklenmiştir. Açıkladığınız sorunla ilgili bir istemci tarafı önbellek kullanan bir example var. Daha önce belirtilen gecikme seçeneğini de kullanabilirsiniz.

    +0

    Otomatik Tamamlama ile devam edeceğini bilmek güzel. Ancak, bu örnek önbelleğe alma konusunda en iyisi değildir. Bir seferde 'Nightingale' bir char bulmayı deneyin ..'Gece' (5 sonuç) 'nighti' (2 sonuç) 'e giderken, bir çağrıyı tetikler :( Tahmin etmem gereken diğer çağrılar ile yaşamak zorundayım :(:(:( – Prasad

    +0

    Peki, orada ne yapıyorlar basit bir regex uyumu Yani temelde sadece yeni bir istek göndermeden önce önbelleğe alınmış listenizle eşleşmeniz gerekir .. Uzak kaynaklar için her zaman göz önünde bulundurmanız gerekir, örneğin girmek için bütün listeyi alamazsınız * In *, sınırlı olabilir Maksimum sayıda öğeye de, bu nedenle, bir sonraki harf için yeni bir etkinlik göndermeniz gerekecek. – Daff