我已经建立了一个约会网站,我在那里使用像facebook这样的一对一聊天应用程序。当一个用户向另一个用户发送任何消息时,它会显示在弹出的聊天框中,但我使用ajax完成了此操作。我使用javascript setInterval函数在每个区间运行。但我认为这个过程不是优化过程。我不希望每次都向服务器发出不必要的请求,而只是在该用户有新消息时触发。有没有其他方法可以做到这样或任何其他协议使用像facebook,gmail这样的大型网站?
答案 0 :(得分:5)
您可以使用WebSockets执行此操作,但这需要服务器实现和支持它的Web浏览器。
另一种技术是使用Long Polling,但同样需要在客户端和服务器上工作。优点是这是一种跨浏览器兼容的技术。
答案 1 :(得分:0)
我同意Josh认为WebSockets值得研究,但如果您无法访问服务器,则可以使用类似Firebase的内容作为后端。
答案 2 :(得分:0)
阅读Long Polling。这是facebook使用的。基本上,您的客户端进行一次Ajax调用,并且在有数据推送到它之前不会返回任何内容。我很确定它需要一些自定义服务器配置,所以如果你在共享主机上开发它不会削减它。如果效率是您想要的,那么长轮询将是正确的,尽管更复杂的方式。
答案 3 :(得分:0)