2012-07-19 11 views
5

मैं पेज पर एक समय में 20 आइटम लोड करने के लिए बैकबोन.जेएस का उपयोग कर रहा हूं, जब तक आप नीचे से नीचे स्क्रॉल करते हैं तो सर्वर से लाने के लिए कोई भी नहीं छोड़ा जाता है।फ़िल्टरिंग के साथ आलसी लोड आइटम

उसी समय, मैं एक इनपुट फ़ील्ड ऊपर शीर्ष चाहता हूं कि जब आप कोई नाम टाइप करते हैं, तो यह मेल खाने वाली वस्तुओं को फ़िल्टर करता है।

समस्या यह है कि, यदि आपने अभी तक नीचे तक स्क्रॉल नहीं किया है और पूर्ण सेट प्राप्त किया है, तो इनपुट फ़िल्टर केवल उन पृष्ठों से मेल खाता है जो वर्तमान में पृष्ठ पर हैं।

आलसी लोड किए गए आइटमों के साथ यूआई फ़िल्टरिंग के संयोजन के लिए तकनीकी और दृष्टि से सबसे अच्छा समाधान क्या है?

संपादित करें: असली परिदृश्य यहां आपके सभी फेसबुक दोस्तों को लोड कर रहा है जो बहुत धीमी हो सकती हैं और उन्हें अन्य एपिस के साथ मैशिंग कर सकती हैं। मैं एक बार में सभी लोड नहीं करना चाहता था क्योंकि अनुभव में देरी हो रही है।

+1

क्या तकनीकी सीमाएं हैं कि आप सभी वस्तुओं को शुरू करने के लिए क्यों नहीं लोड करते हैं या यह ज्यादातर उपयोगकर्ता अनुभव के लिए है? इस प्रश्न का उत्तर जानने से आपके प्रश्न का उत्तर तैयार करने में मदद मिल सकती है ... – alexwen

+0

हाय एलेक्स, कृपया मेरा संपादन देखें। धन्यवाद। – Abadaba

+0

आलसी लोडिंग ... आप कितने फेसबुक दोस्त खूनी हैं? – Louis

उत्तर

1

जब कोई उपयोगकर्ता खोज रहा है, तो संग्रह को रीच क्यों न करें जिसमें एक फ़िल्टर शामिल है?

Collection.fetch ({अवधि:। $ ("# खोज") वैल()})

यदि आप सेटअप अपने बैकएंड गुंजाइश के लिए इस संग्रह अवधि पैरामीटर के अनुसार अपने परिणाम है, तो अपने लिए एपीआई अंत बिंदु संग्रह में केवल उस सर्वर से परिणाम होंगे जो उपयोगकर्ता इनपुट से मेल खाता है।

आप आरंभिक fetch को उपयोगकर्ता के पहले 3 अक्षरों में भी सीमित कर सकते हैं, फिर उपयोगकर्ता के बाकी हिस्सों को अपने फ़िल्टरिंग क्लाइंट पक्ष को टाइप करना जारी रखें। ऐसा है कि आप अपने पहले कॉल के साथ खोज परिणाम सर्वर पक्ष को सीमित नहीं कर रहे हैं।

संबंधित मुद्दे