2012-10-17 33 views
0

我已經實施了tableView並添加了searchBar。我想在用戶開始在搜索欄中輸入搜索關鍵字時調用服務。我知道我可以致電change事件偵聽器中的服務來調用該服務。打電話給Web服務以獲得鈦的搜索結果

我知道,對於搜索欄中的每個更改,調用服務都不好。那麼,當搜索結果來自服務調用時,或者我們可以做些什麼來使搜索有效,那麼使用搜索欄的有效方法是什麼?

例如:在蘋果的App Store

回答

0

我做了這樣的事情對我的測試項目之一的搜索功能。我會檢查我的更改事件,在我嘗試查找之前至少輸入了3個字符。我不知道爲什麼我使用3,但它似乎是一個適當的字符數過濾我的數據。我還會設置一個標誌,表示網絡請求正在進行中。所以如果他們輸入了3個字符,如果沒有查找進行中,您可以啓動搜索。如果有網絡請求正在進行,您可以設置一個等待時間間隔來檢查請求是否返回並在此時啓動附加請求。我會發回短名單的項目,這對我來說是25,所以我的桌子出現很快。

儘管我沒有這樣做,但您可以跟蹤鍵入的字符之間的時間間隔,以確保用戶完成鍵入。對於最佳時間間隔,您需要試驗一般用戶的合理情況。從這個典型的非電力用戶那裏獲得一些反饋。

我可以看到一個潛在的問題,您正在查找中,但用戶仍在打字。您可能需要跟蹤這些字符更新,並可能啓動對更新字符串的額外搜索。您甚至可以使用輸入框中的當前字符檢查您當時發送的字符搜索字符串,並選擇放棄已收到的查找項目列表,然後再進行其他搜索。

您可能想要顯示您確實收到的項目列表,以便用戶知道該應用程序正在工作,但會立即自動發送另一個查找項目請求。用戶最終可能會開始敲擊鍵盤,並認爲如果您偶爾沒有在表格中顯示某些內容,則該應用程序無響應。

+0

這是有道理的,這是我現在看到的唯一可能的解決方案。 –