![]() |
1
5
您所说的另一种选择是某种形式的Comet风格的接口,在这种接口中,客户机发出一个请求,而服务器则一直保持该请求,直到有响应为止。wcf有pollingduplex绑定类型,但我不太确定如何在javascript中实现它。 嗯,这似乎是一个非常相关的链接。上面写着Silverlight,但它是一个专门针对Ajax浏览器应用程序的应用程序: http://www.silverlightshow.net/news/AJAX-Client-for-HTTP-Polling-Duplex-WCF-Channel-in-Microsoft-Silverlight-3-.aspx 更新: 我不明白为什么所有的备选答案都是“OMG自己做投票!”我们有专门的现代框架和协议来减少我们编写的手工代码的数量。wcf提供的pollingDuplex功能 确切地 您想要的,以及我提供的链接用纯JavaScript实现了该系统的客户端。 不知道你还想要什么。 更新2: 对不起的, original article link .我们都认识到投票是 唯一解决方案 对于HTTP人员。作者正在寻找的主要区别是模拟推送与持续轮询。您可以通过向服务器放置一个长时间运行的轮询请求来实现模拟推送。有了正确的服务器体系结构,它将保持这个请求,直到它有数据为止。然后它会响应。此时,客户机立即重新请求。通过这种方式,您可以利用现有的HTTP请求响应循环来模拟对客户机的“推送”。 这主要是通过 适当的服务器体系结构 就位。这样,你的请求就会进入睡眠状态,并以适当的方式被唤醒。这是一个比手动轮询答案好得多的范例,在这里您每5秒钟向服务器请求一次更新。需要响应的聊天应用程序 现在 从现在开始不是4.8秒 我在说。手动轮询(每隔5秒请求一次新数据)会出现滞后现象,在没有更新数据的期间,会导致不必要的请求/响应周期。 从文章中:
从下载的.htm文件:
没有正在创建的Silverlight对象或正在引用的库。我也可以将.js文件转储到这里,以表明它只是一个“可重用的、独立的javascript库,实现HTTP轮询双工协议的客户端”,并不依赖于正在安装的Silverlight。 |
![]() |
2
3
也许我遗漏了一些明显的东西,但是为什么不简单地从Ajax执行一个GET请求(您可以使用jquery或任何主要的javascript框架轻松完成此操作),然后在响应时,您可以做任何需要更新视图的事情。 这是复制粘贴的快速模式 here Ext.Ajax.request({ url : 'http://yourdomain.com/controller/Action' , params : { action : 'getDate' }, method: 'GET', success: function ( result, request ) { Ext.MessageBox.alert('Success', 'Data return from the server: '+ result.responseText); //.. do more view related stuff here , if this was a grid your would probably reload the store }, failure: function ( result, request) { Ext.MessageBox.alert('Failed', result.responseText); } }); 当然,您需要使用一个计时器以固定的时间间隔执行这个Ajax请求。 希望它有帮助 |
![]() |
3
0
由于防火墙等原因,在分布式环境中实现发布订阅模式非常困难。 Afaik Microsoft正在使用智能池实现新的WCF绑定,以便在Silverlight和JavaScript中使用。但是,又是这样 轮询 . 目前唯一的方法就是投票。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |