2011-09-14 13 views
3

私はSencha Touchを使用してMicrosoft Lync用モバイルチャットクライアントを作成しています。Sencha Touch:実装ポーリング

サーバー側では、lyncwidget codeplexプロジェクト(http://lyncwidget.codeplex.com)のJSONP対応WCFサービスを使用しています。 呼び出されると、WCFサービスは、キューに登録されたメッセージを返します。サーバーをJSONデータとして表示します。

アイデアは、クライアントが定期的にサービスをポーリングして新しいメッセージを取得するという考え方です。

可能であれば、私のストアのプロキシで直接ポーリング動作を実装したいと考えています。だから "ChatMessagesStore"。

これをきちんと実装する方法についてのアドバイスはありますか?

ありがとうございました。

ps:私はSencha Touchの初心者です。

答えて

2

Ext.data.ScriptTagProxyクラスを拡張するのが最適です。次に、内部に"pool-interval"という名前のプロパティと、sync()という関数を呼び出すメソッドを持っています。例:あなたはこのようなプロキシで複数の店舗を持っている場合

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

この方法では、複数のsetInterval通話とあなたが店の名前を変更したときにそれらを変更する必要性を設定することを気にする必要はありません。

+1

makeRequestを自分自身で呼び出そうとすれば、 'setInterval'ではなく' setTimeout'を使うべきでしょうか? – Rom1

+0

良い点!ちょうど変わった。 – ilija139

1

定期的にsync()を店舗に呼び出すのはどうですか?

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

を呼び出すと、3秒毎にお店を同期う例えば

、。

モバイルアプリケーションからのポーリングに関する短い発言:バッテリーが狂ったように消耗します。誰にも代替策や回避策のアイデアはありますか?

+0

syncメソッドは何かカスタムですか?私はそれに関するドキュメントを見つけることができないようです。 –

+0

Nope; 'Ext.data.Store'の' sync'メソッドの定義を見てください。 – Rom1