我有这样的文本输入,它将对用户输入的每个键执行搜索。由于搜索功能需要一点时间才能执行用户输入,直到完成执行为止。
<input type="text" id="suggestion" onkeyup="search();"/>
我们可以让这个搜索功能执行,让用户输入文本字段。像让搜索在后台运行的东西。
PS 即可。我不想使用延迟函数等到用户完成并调用search()
答案 0 :(得分:2)
JavaScript在单个线程上运行 - 因此,当搜索功能运行时,它还会阻止UI呈现并响应您。您应该尽可能避免在持续时间超过16毫秒的浏览器上执行操作,您可以阅读有关原因here的更多信息。
无论如何,目前有2种主要解决方案:
答案 1 :(得分:1)
也许不是每次都使用
设置全局开关时让它运行window.somevar = true;
然后在再次搜索之前检查是否设置了该变量。初始搜索完成后,显示结果并取消设置全局变量
delete window.somevar;
这样功能&#34;运行&#34;每次按键,但不会锁定输入。