我有這樣的文本輸入,它會對用戶輸入的每個按鍵執行搜索。由於搜索功能需要一點時間才能執行,用戶輸入卡住直到完成執行。以不同的方式運行JavaScript功能
<input type="text" id="suggestion" onkeyup="search();"/>
我們可以讓這個搜索函數執行並讓用戶在文本字段中輸入。就像讓後臺運行搜索一樣。
ps。我不想使用延遲功能要等到用戶完成並調用搜索()
我有這樣的文本輸入,它會對用戶輸入的每個按鍵執行搜索。由於搜索功能需要一點時間才能執行,用戶輸入卡住直到完成執行。以不同的方式運行JavaScript功能
<input type="text" id="suggestion" onkeyup="search();"/>
我們可以讓這個搜索函數執行並讓用戶在文本字段中輸入。就像讓後臺運行搜索一樣。
ps。我不想使用延遲功能要等到用戶完成並調用搜索()
也許不是讓它每次運行設置使用
window.somevar = true;
然後檢查是否變量是一個全球性的開關在再次搜索之前設置。一旦最初的搜索是完全然後顯示你的結果和取消全局變量
delete window.somevar;
這樣的功能,「運行」每次擊鍵,但不鎖定輸入。
JavaScript運行在單個線程上 - 因此,當搜索功能運行時,它也會阻止UI呈現並響應您。您應該儘可能避免在瀏覽器上執行超過16ms的操作,您可以閱讀更多關於here的原因。
不管怎麼說,目前對於這2級主要的解決方案:
祝你好運。
嘗試Debouncing:https://davidwalsh.name/javascript-debounce-function –
你在哪裏輸出你的結果? – smcjones
我正在搜索約3000行以查找一些文本細節。如果有什麼與我的搜索條件相匹配的話,一個簡單的UI更改就會完成。這是主意。 –