मेरे पास UISearchDisplayController का एक UISearchBar हिस्सा है जो स्थानीय CoreData और दूरस्थ API दोनों से खोज परिणाम प्रदर्शित करने के लिए उपयोग किया जाता है। जो मैं हासिल करना चाहता हूं वह दूरस्थ एपीआई पर खोज की "देरी" है। वर्तमान में, उपयोगकर्ता द्वारा टाइप किए गए प्रत्येक चरित्र के लिए, एक अनुरोध भेजा जाता है। लेकिन अगर उपयोगकर्ता विशेष रूप से तेजी से टाइप करता है, तो कई अनुरोध भेजने का कोई मतलब नहीं है: यह तब तक इंतजार करने में मदद करेगा जब तक वह टाइप करना बंद नहीं कर देता। वहाँ एक तरीका है कि प्राप्त करने के लिए है?
प्रलेखन को पढ़ने से यह पता चलता है कि जब तक उपयोगकर्ता खोज पर स्पष्ट रूप से टैप नहीं करते हैं, तब तक प्रतीक्षा करें, लेकिन मुझे अपने मामले में यह आदर्श नहीं लगता।
प्रदर्शन के कारण। यदि खोज संचालन बहुत तेज़ी से किया जा सकता है, तो खोज परिणामों को अपडेट करना संभव है क्योंकि उपयोगकर्ता खोज में लागू करके टाइप कर रहा है: textDidChange: प्रतिनिधि ऑब्जेक्ट पर विधि। हालाँकि, यदि खोज अभियान में अधिक समय लगता है, तो आपको तब तक इंतजार करना चाहिए जब तक उपयोगकर्ता खोज में टैप नहीं करता है खोज में खोज शुरू करने से पहले खोज बटनबटनटन: विधि। मुख्य थ्रेड को ब्लॉक करने से बचने के लिए हमेशा सर्च ऑपरेशन एक बैकग्राउंड थ्रेड करें। यह आपके ऐप को उपयोगकर्ता के लिए उत्तरदायी रखता है जबकि खोज चल रही है और एक बेहतर उपयोगकर्ता अनुभव प्रदान करता है।
एपीआई में कई अनुरोध भेजना स्थानीय प्रदर्शन की समस्या नहीं है, लेकिन केवल दूरस्थ सर्वर पर बहुत अधिक अनुरोध दर से बचने के लिए है।
धन्यवाद