2010-02-14 4 views
8

मेरे पास एक मोबाइल डिवाइस पर एक फिल्टर ग्राहक कार्रवाई के लिए एक टेक्स्टफील्ड है। मुझे आश्चर्य है कि क्या मुझे अपना कोड लॉन्च करने से पहले कुछ मिलीसेकंड्स का इंतजार करना चाहिए, जब उपयोगकर्ता 3 वर्णों में कम टाइप करता है, और केवल पाठ को निष्पादित करता है यदि पाठ 3 वर्णों से लंबा या बराबर है।क्या टेक्स्ट चेंज किए गए ईवेंट पर कुछ मिलीसेकंड प्रतीक्षा करना उचित है?

निष्पादित कोड अधिक समय लेता है (बड़े डेटाबेस पर सिंटैक्स की तरह एसक्यूएल), और उपयोगकर्ता सूचीदृश्य पर हैंग-आउट देखता है।

आपको क्या लगता है?

उत्तर

5

टेक्स्ट बदलते हुए एसक्यूएल प्रश्नों को विलंबित करना वास्तव में एक अच्छा विचार है। हम एंड्रॉइड में इस तकनीक का उपयोग करते हैं। हम हमेशा किसी भी पिछली क्वेरी को रद्द करना सुनिश्चित करते हैं। उदाहरण के लिए, यदि उपयोगकर्ता "ab" टाइप करता है, और उपयोगकर्ता ने "ए" टाइप करने के बाद एक क्वेरी शुरू करने के लिए एक संदेश पोस्ट किया है, तो हम उस संदेश को रद्द करते हैं जब उपयोगकर्ता "बी" टाइप करता है।

+0

क्या आप कोड साझा कर सकते हैं? – Pentium10

1

यदि उपयोगकर्ता आपका कोड लॉन्च होने पर हैंग-आउट देखता है, तो मैं इसे तुरंत लॉन्च नहीं करूंगा।

उपयोगकर्ता के इनपुट के आधार पर फ्लाई पर क्वेरी निष्पादित करने का मानना ​​है, मैं तब तक प्रतीक्षा करूंगा जब तक कि उपयोगकर्ता हल्का क्वेरी संसाधित करने के लिए पर्याप्त वर्ण टाइप न करे और यूआई को दबाए। विशेष रूप से %LIKE% सिंटैक्स का उपयोग करके, कम चार के साथ आपको काम करना होगा, इसका मतलब है कि उपयोगकर्ता के लिए एक बड़ी क्वेरी और अधिक प्रतीक्षा-समय है।

0

मैं स्रोत कोड उपलब्ध होने के बाद एंड्रॉइड मूल अनुप्रयोगों के समान दृष्टिकोण का उपयोग करने का प्रयास करूंगा। उदाहरण के लिए Contacts

जांचें कि जब आप संपर्क की खोज करते हैं तो वे क्या करते हैं।

+0

मुझे समझ में नहीं आता कि वे क्या करते हैं, यह मेरे लिए जटिल लग रहा है। क्या आप शब्दों में व्याख्या कर सकते हैं? – Pentium10

+0

मैंने यह नहीं देखा कि वे क्या करते हैं। मैंने अभी आपको बताया कि आप कहां देख सकते हैं। – Macarse

+0

संपर्क अन्य धागे पर क्वेरी निष्पादित करता है। जैसे ही यह पहला इनपुट प्राप्त होता है, यह क्वेरी शुरू होता है, और जब तक उपयोगकर्ता ने अभी तक टाइप नहीं किया है, तब तक क्वेरी को तब तक चलाना जारी रखता है जब तक कि यह अब तक टाइप नहीं हो जाता है। यह इसे एकल अक्षरों दोनों के लिए उत्तरदायी होने की अनुमति देता है, और अक्षरों की तुलना में तेज़ी से टाइप किए गए अक्षरों का एक बैच चलाया जा सकता है। – hackbod

0

कुछ एप्लिकेशन इनपुट के सत्यापन को भी निष्पादित करते हैं जब फोकस किसी अन्य इनपुट फ़ील्ड पर जाता है और इसे संपादित किए जाने पर इनपुट की जांच न करें। मुझे यकीन नहीं है कि यह एक अच्छी बात है या नहीं (मुझे यह थोड़ा उलझन में मिल रहा है), लेकिन यह समस्या को हल करने का निश्चित रूप से एक तरीका है ...

0

यदि आप खोज शुरू करने के बाद उपयोगकर्ता को अंतराल देखते हैं तो आपको अंतराल को देखने की आवश्यकता होती है, तो संभवत: आरजी ने पुराने खोजों को रद्द करने की क्षमता के साथ क्वेरीिंग ऑपरेशन को पृष्ठभूमि थ्रेड में स्थानांतरित करने की आवश्यकता है।

पहले कुछ पात्रों के लिए थोड़ा देरी हो सकती है लेकिन उसके बाद कोई देरी नहीं होती है - लगभग तीन से चार के बाद आपके पास सार्थक परिणाम वापस करने के लिए पर्याप्त अक्षर हैं।

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

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