通过发送jQuery ajax请求和使用新内容进行更新来更新界面非常容易。但我需要更具体的东西。
我希望在没有请求的情况下将响应发送给客户端,并在服务器上发现新内容时更新内容。无需每次都发送ajax请求。当服务器有新数据时,它会向每个客户端发送响应。
有没有办法在浏览器中使用HTTP或某些特定功能?
答案 0 :(得分:3)
Websockets,Comet,HTTP长轮询。
答案 1 :(得分:2)
它有名称服务器推送(您也可以在名称Comet技术下找到它)。使用这些关键字进行搜索,您会发现一堆示例,工具等。不需要特殊协议。
答案 2 :(得分:1)
啊哈!你试图打破网络的原则:)你看,如果网络是纯MVC(模型 - 视图 - 控制器),'服务器'实际上可以向客户端发送消息并要求他们更新。问题是服务器可以进行负载平衡,并且可以将相同的请求发送到不同的服务器。现在,如果您要将消息发送回客户端,您将必须知道谁都连接到服务器。假设该网站非常受欢迎,每天大约有10万人连接到该网站。实际上,您必须存储每个IP的IP以了解它们所在的互联网位置,并能够“推送”它们。
注意事项:
你知道,它保持简单和安宁。您可能觉得客户端“轮询”服务器以提取数据并且您更喜欢推送是低效的,但服务器的设计得到了简化:)
我建议ajax-pulling是最好的方法 - 你正在向客户分发计算并保持简单(KIS原则:)
当然,你可以解决它,问题是,它值得吗?
希望这会有所帮助:)
答案 3 :(得分:1)
RFC 6202可能是一本很好的读物。