【问题标题】:Telling jQuery to reload page when there is a server side event当有服务器端事件时告诉 jQuery 重新加载页面
【发布时间】:2010-10-27 04:46:53
【问题描述】:

我有一个带有 div 的页面,并且 div 中的元素会定期从服务器端更新。例如,我有一个进度条。目前,我正在使用 setInterval 执行 jQuery.load 以定期刷新页面上的 div(每 3 秒)。我想知道是否可以使用基于事件的方法而不是基于计时器的方法来实现这一点。例如,我可以在每次进度更改时触发服务器事件,然后我可以增加页面上进度条的宽度(以及更改其他元素)。问题是我如何告诉 jQuery 在发生这种情况时进行加载?是否有 jquery onchange 事件或监视页面更改的东西?

【问题讨论】:

    标签: c# javascript asp.net jquery html


    【解决方案1】:

    可以进行轮询,但有更好的方法:Comet 服务器。基本上,HTTP 服务器允许长时间运行的请求,这意味着它不会发送响应,除非发生某些事情或超时即将开始。

    在这里了解彗星:http://en.wikipedia.org/wiki/Comet_(programming))

    jquery 的彗星插件:http://plugins.jquery.com/project/Comet

    更技术性的文章:http://ajaxpatterns.org/HTTP_Streaming

    【讨论】:

      【解决方案2】:

      这是不可能的,因为服务器和客户端之间的底层通信协议 (HTTP) 是基于请求-响应的。因此,服务器不可能在没有客户端请求的情况下通知客户端。简而言之,轮询是要走的路。

      【讨论】:

      • 不,轮询不是要走的路。
      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多