2011-09-14 45 views
3

我正在爲使用Sencha Touch的Microsoft Lync編寫移動聊天客戶端。Sencha Touch:實施輪詢

在服務器端,我使用來自lyncwidget codeplex項目(http://lyncwidget.codeplex.com)的啓用JSONP的WCF服務。 被調用後,WCF服務將返回所有在服務器作爲JSON數據。

這個想法是,客戶端定期輪詢服務以檢索任何新消息。

我想直接在我的Store's Proxy中實現輪詢行爲(如果可能的話)。所以在「ChatMessagesStore」中。

有關如何以一種整潔的方式實現這一點的任何意見?

謝謝。

ps:我是Sencha Touch的新手。

回答

2

最好的辦法是延長Ext.data.ScriptTagProxy這個班級。然後在內部有一個名爲"pool-interval"的屬性和一個可以調用sync()函數的方法。例如:

makeRequest(){ 
    this.sync(); 
    setTimeout("this.makeRequest()",pool-interval); 
}; 

這樣,如果你有這樣的代理多個商店,你不會有設置多個setInterval電話和需要改變他們,當你改變了商店的名字來打擾。

+1

如果你打算自己調用makeRequest,那麼你應該使用'setTimeout'而不是'setInterval' ...? – Rom1

+0

好點!只是改變了。 – ilija139

1

如何在商店上定期致電sync()

例如,調用

setInterval("MyApp.stores.myStore.sync()", 3000); 

會同步你的店每三秒鐘。

有關移動應用程序輪詢的簡短評論:它像瘋了似的耗盡電池。任何人都有替代方案/解決方法的想法?

+0

同步方法是否是自定義的?我似乎無法找到任何文件。 –

+0

不是;查看'Ext.data.Store'中的'sync'方法定義 – Rom1