javascript - 以不同方式运行 JavaScript 函数

标签 javascript jquery

我有这样的文本输入,它将对用户输入的每个键执行搜索。由于搜索功能需要一些时间来执行,因此用户输入会被卡住,直到执行完成为止。

  <input type="text" id="suggestion" onkeyup="search();"/>

我们可以让这个搜索函数执行并让用户在文本字段中输入内容吗?比如让搜索在后台运行。

ps。我不想使用延迟函数等待用户完成并调用 search()

最佳答案

JavaScript 在单线程上运行 - 因此,当搜索功能运行时,它还会阻止 UI 渲染和响应您。您应该尽可能避免在浏览器上进行持续时间超过16ms的操作,详细原因可以阅读here .

无论如何,目前有两个主要解决方案:

  • 将其移至服务器端。您在 JavaScript 中运行的搜索逻辑是什么?它真的应该在客户端而不是服务器端运行吗?
  • 在另一个线程上执行它。您熟悉 WebWorkers 吗?这是一个更高级的主题,但通常它允许您在另一个线程上执行代码。这是相当新的not fully supported但在当今的浏览器中,您至少应该熟悉它。

祝你好运。

关于javascript - 以不同方式运行 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33555867/

相关文章:

javascript - 如何在选定元素之后获取所有元素

javascript - Angular 模板路由不起作用

php - 需要 javascript - 可以通过服务器端语言强制执行吗

jquery - jQuery 中克隆元素的问题

javascript - 如何使用注入(inject)到 Firefox 控制台的 js 文本来更改网站的背景图像 - 提供示例

javascript - LeafletJs GeoMan 多边形编辑

javascript - 将 JavaScript 文件加载到另一个 JavaScript 文件中

javascript - 处理 html 作为来自服务器的纯文本响应的问题

javascript - 图像的窗口位置 href

jquery - .on() 和切换一起工作