在 asp.net 中,如何从服务器触发客户端jquery事件。我想在我的聊天部分实现它...当前聊天似乎工作正常...但它有一个问题...我必须每5秒从客户端的浏览器发送一个请求到他的聊天记录..我觉得这不是一个好主意......
任何人都可以为我的问题提供任何解决方案
答案 0 :(得分:1)
默认情况下,您需要通过客户端浏览器进行轮询。这就是ajax开箱即用的方式。有一种称为 Comet 的技术,它是推模型。
您可以尝试使用这样的jQuery插件:http://plugins.jquery.com/project/jQuery-Comet-Push-API。
在(近)未来,你可以在HTML5中使用 websockets 。以下是从http://channel9.msdn.com/Events/MIX/MIX11/HTM10获取的信息。
WebSockets,一种新兴规范 由W3C和IETF标准化, 将启用Web浏览器以及 客户端应用程序打开一个 双向,全双工 与远程通信通道 主机。
请务必查看MIX11视频!
答案 1 :(得分:0)
你正在做的最好的事情,你可以做到没有像HTML5 WebSockets那样尚未准备好正常使用的东西。
两个选项:
答案 2 :(得分:0)
虽然我不熟悉ASP.Net,但这个问题可以用另一种方式解决。
让服务器返回您需要执行的函数名称,然后在回调函数中调用它吗?
有点像(这只是一个错字但是)
$.post("yourpage.aspx",
{
d1: "v1"
},
function(data) {
//now the data will hold the name of the function
window[data]();
}
);
现在你可以在另一个函数中包装上面的代码,并设置一个定时器,定期检查响应,并在条件匹配时执行该函数。
<子> P.S。我跳过了部分,脚本会检查条件是否匹配。
答案 3 :(得分:0)
欢迎来到HTTP世界。
这就是浏览器的工作原理。客户端向服务器和服务器发送请求响应。没有其他方式(现在)走另一条路。这很简单,这也是HTTP协议如此受欢迎的原因之一。
但现在情况正在发生变化,HTML5支持网络套接字。如果你开发HTML5支持设备(所有浏览器的最新版本+ iPhone / iPad支持套接字),那么websockets就可以了。
另一方面,你可以选择Comet民意调查(如XIII所述)。基本上它是客户端向服务器发送请求并等待服务器有任何响应。我不太确定在ASP.NET中实现它的好方法(因为我认为并发连接存在限制)但它在Nodejs中是一种非常有用的技术。