为了构建一个简单的实时搜索系统,我试图决定是使用Websockets还是Ajax。就实现而言,对于用户键入的每一个字母(或者每0.5秒),将对输入/类型化文本运行数据库查询,并对查询输出进行一些比较,以便将前5-10个结果返回给用户设备。
我非常熟悉Ajax,学习Websockets将是一个很好的练习,如果它是一个更好的技术使用。但是,由于我目前没有资格对两者进行基准测试,我希望得到任何关于这方面的指导。在这种情况下,Ajax的连接开销会产生足够大的差异吗?还有其他可能重要的因素吗?
发布于 2021-03-19 12:25:36
如果您希望通信由服务器发起,而不是由客户端发起,则只需要websockets。除非我误解了,在你的情况下,客户似乎开始每一个沟通。在这种情况下,Ajax就足够了,我建议坚持您已经知道的内容。
如果基础数据集更新(而客户端没有键入)并因此符合新结果,则需要websockets。这方面的一个例子是Stack本身:主页和标签页有websockets来通知您新发布的符合标准的问题。这样就可以替换运行查询“可能每0.5秒一次”,但它也需要在后端进行大量的工作。您需要知道有哪些连接,以及何时有资格将新的结果推送到websocket上。
https://softwareengineering.stackexchange.com/questions/423592
复制相似问题