如何在发送标头之后很长时间(分钟)将脚本附加到请求中,如何发出ajax请求?我如何用jquery做到这一点?
这在聊天应用程序中非常有用。然后每封邮件没有一个请求。
答案 0 :(得分:2)
据我所知,这是不可能的。通常使用的是long-polling。长轮询涉及在服务器上发出长生存请求,该请求轮询数据存储区并在数据可用时发送200响应。由于从客户端发送消息,因此消息可以作为单个AJAX调用发送,因此不需要具有活动的HTTP请求。 注意:长轮询用于服务器到客户端的通信。正如我所说,我不确定你想做什么是可能的,但无论如何,从客户端发送每条消息的完整HTTP请求的开销是不值得尝试优化的。
如果你想要一个长期存在的套接字连接,你应该考虑使用socket.io。这是聊天用例的完美匹配。
这个tutorial描述了如何使用socket.io实现聊天。顺便说一句,socket.io不限于Node.js后端,存在许多不同语言的实现。谷歌搜索术语socket.io server implementations
会产生很多结果。
答案 1 :(得分:0)
不,这不是在聊天应用程序中完成的。
如果您访问Facebook.com并查找消息的发送方式,则按 Enter 按钮时,您将看到每条消息都直接发送。因为一旦请求被发送到服务器,它们之间的连接就会断开,直到响应准备就绪。
你想发送标题,然后继续加入数据,对吗?那么你需要在服务器端保持请求处于活动状态。我不确定你为什么要这样。但是,如果您只想创建聊天应用程序,那么这是我的推荐
使用http://www.asp.net/signalr(SignalR)或将消息发送到域,可以说是不使用cookie的子域。因此,只发送和接收文本信息。
但请注意,每次必须发送邮件时,您都必须发送新请求。我没有将SignalR用于我的应用程序,但我尝试阅读他们的文档,其中包含其工作的详细信息,并用于此类用途。
答案 2 :(得分:0)
你不能用普通的javascript做到这一点。
如果您的网络应用程序要在最近的浏览器上运行,您可以使用 HTML5服务器发送事件(SSE)
看看这里:http://blog.alexmaccaw.com/killing-a-library
或者在这里:http://www.html5rocks.com/en/tutorials/eventsource/basics/