从服务器调用jquery函数

时间:2011-04-21 13:02:32

标签: javascript jquery asp.net events

asp.net 中,如何从服务器触发客户端jquery事件。我想在我的聊天部分实现它...当前聊天似乎工作正常...但它有一个问题...我必须每5秒从客户端的浏览器发送一个请求到他的聊天记录..我觉得这不是一个好主意......

任何人都可以为我的问题提供任何解决方案

4 个答案:

答案 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那样尚未准备好正常使用的东西。

两个选项:

  • (保守选项)接受您将轮询服务器并优化轮询的方式以保持较低的影响。
  • (edgy选项)尝试一些模拟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中是一种非常有用的技术。