yzh*_*han 3 ajax node.js socket.io
我正在使用 Node.js 和 Express 构建一个搜索应用程序,并且我想添加自动完成功能。之前我使用 Socket.io 构建了一个聊天应用程序,所以我首先想到的是 Socket.io。
但我做了一些研究,看起来很多人都在使用 AJAX 进行自动完成,那么这两种实现之间有什么区别呢?
我对 TCP 和 HTTP 协议没有太多经验,所以我真的很感谢菜鸟们的清晰简单的答案:)
首先,您的用例是创建自动完成功能。那意味着什么?这意味着当您在输入字段中插入字母时,您将请求服务器包含您想要查找的术语以接收所有自动完成值。
作为开发人员,当您阅读此功能详细信息时,您应该记住event我们案例中的“keypress事件”一词。因此,每次触发此事件时,您都希望请求服务器获取自动完成列表。你有什么可能性可以做到这一点?
这种类型的场景首先最常用的是一个简单的ajax调用,它将发送一个请求,完成后将使用相应的详细信息更新自动完成功能。正如我们在本例中看到的那样,对于输入的每个字母,都可能会提出请求(通常您可以实施 a debounce function)以减少调用次数。这里好的想法是,一旦收到详细信息,您将关闭连接,并且有数百万个插件可以jquery很好地做到这一点。
第二种方法是使用socket.io这也是一个可行的选项,您将打开一次连接,并且对于每个连接,keypress event您将发出您的获取详细信息,这通常会更快,因为您将重用现有连接。这里的缺点是你需要自己创建它,我不知道有任何使用autocompletesocket.io 实现的插件。
结论
Socket.io
socket.io适合您已经在应用程序上使用的情况阿贾克斯
socket.io| 归档时间: |
|
| 查看次数: |
1644 次 |
| 最近记录: |