假设我有一个文本框/搜索框
<input type="search">
然后我想仅当光标聚焦在搜索框中时才将其连接到服务器。
该应用旨在供互联网范围内使用,搜索框会监听每次按键。
您认为 WebSockets 是像上面示例那样的搜索框的良好实现吗?
最佳答案
根据您所说的,我猜您想要实现诸如搜索框的自动完成建议或键入时搜索之类的功能。根据我的经验,WebSocket 非常适合这些用例。
WebSocket 是低延迟的,因此返回结果的速度非常快。借助离用户不太远的快速后端和服务器,您可以获得接近本地本地的性能。
WebSocket 也仅在存在实际流量时才消耗带宽,因此您不会因连接多个搜索框而支付任何流量损失。
我编写了一个演示应用程序,它使用 WebSocket 连接获取搜索框的自动完成建议(在 Oracle 数据库后端搜索 100 万条记录)。演示暂时不在线,但你可以看一下https://github.com/tavendo/WebMQDemo/tree/master/web/demo/autocomplete的代码。
演示的 WebSocket 部分非常容易实现。该演示在浏览器中使用 AutobahnJS,它在原始 WebSocket 之上提供了一些舒适的功能,并实现了 PubSub + RPC 协议(protocol) (WAMP)。代码例如对于自动完成数据的请求非常简单(第 717 行)。
它需要一个 crossbar.io 服务器和一个 Oracle 数据库才能运行 - crossbar.io 项目的网站目前正在 build 中。所以目前运行起来并不容易。
全面披露:我在 Tavendo 工作,该公司启动了 Autobahn 和 crossbar.io 项目。两者都仅作为示例给出 - 您可以使用其他 WebSocket 技术。这只是我所熟悉的。
关于html - websockets 是搜索框的良好实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19706367/