Sencha Touch:实现轮询
Posted
技术标签:
【中文标题】Sencha Touch:实现轮询【英文标题】:Sencha Touch: Implementing Polling 【发布时间】:2011-09-14 19:02:25 【问题描述】:我正在使用 Sencha Touch 为 Microsoft Lync 编写移动聊天客户端。
在服务器端,我正在使用 lyncwidget codeplex 项目 (http://lyncwidget.codeplex.com) 中支持 JSONP 的 WCF 服务 在被调用时,WCF 服务会将在服务器上排队的所有消息作为 JSON 数据返回。
这个想法是客户端定期轮询服务以检索任何新消息。
如果可能的话,我想直接在我的商店代理中实现轮询行为。所以在“ChatMessagesStore”中。
关于如何以简洁的方式实现这一点的任何建议?
谢谢。
ps:我是 Sencha Touch 的新手。
【问题讨论】:
【参考方案1】:最好的办法是扩展Ext.data.ScriptTagProxy
类。然后在里面有一个名为"pool-interval"
的属性和一个调用sync()
函数及其自身的方法。示例:
makeRequest()
this.sync();
setTimeout("this.makeRequest()",pool-interval);
;
这样,如果您有多个具有此类代理的商店,您就不必费心设置多个 setInterval
调用,也无需在更改商店名称时更改它们。
【讨论】:
如果您要自己调用 makeRequest,那么您可能应该使用setTimeout
而不是 setInterval
...?【参考方案2】:
定期在商店拨打sync()
怎么样?
例如调用
setInterval("MyApp.stores.myStore.sync()", 3000);
将每三秒同步一次您的商店。
关于移动应用程序轮询的简短评论:它会像疯了一样耗尽电池。有人对替代方案/解决方法有想法吗?
【讨论】:
同步方法是自定义的吗?我似乎找不到任何文档。 不;查看Ext.data.Store
中的sync
方法定义以上是关于Sencha Touch:实现轮询的主要内容,如果未能解决你的问题,请参考以下文章
sencha touch 2 中的谷歌地图实现(MVC 方式)
[Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自己主动更新App的Web内容
SENCHA:如何通过单击 SENCHA touch 中的添加/删除按钮动态添加/删除文本字段
[Sencha ExtJS & Touch] 在Sencha(Extjs/Touch)应用程序中使用plugins(插件)和mixins(混入)