2011-08-16 10 views
0

私はextjsグリッドをAjaxプロキシ(XMLリーダー)で使用してデータをロードしています。アプリケーションの要件は、プロキシはサーバーからすべてのデータを取得しますが、グリッドはリロードするか、追加/削除するものがある場合にのみ更新する必要があります。store.loadメソッドを使用せずにextjsストアのサーバーからプロキシデータを取得する方法

私は検索したが、わからないか、捜している可能性があります。

ここは私がしたいことです。 1)サーバーとranderから最初のグリッドデータを取得します。 2)データをローカルに格納します。 2)5秒後にサーバー応答を再度取得しますが、何か変更があった場合にのみローカルデータとコールグリッドリフレッシュを比較します。ユーザーがこのページから離れるまでこれを無限に行います。

私の問題は、どのようにしてProxy.Read()やそのようなものを取得して、XML応答を初めて取得するか、それに続くリクエストを取得できることです。私が応答を得ることができれば、私はさらに進める方法を知っています。

ご協力いただきありがとうございます。

Jignesh

答えて

0

AbstractStore.load方法と同じコードを使用し、独自のコールバックを指定します。

+0

あなたはonProxyLoadメソッドを置き換えると言っていますか?ストアソースを変更する代わりに、onProxyLoadメソッドをオーバーライドできる方法はありますか? Storeのloadメソッドを使用する際の問題は、コールバックによって負荷が処理された後でもグリッド全体をリフレッシュすることです。私はコールバックがそれを必要とする場合にのみ、グリッドをリフレッシュしたい。ストアのロードメソッドはいつも、コールバック関数を持っているかどうかは関係ありません。 –

+0

店舗の負荷を使わずにProxyのprocessResponseを使った例があります。私は正確な構文を知らないが、それはproxy.read(コールバック:processResponse)のようにすべきである。 –

0


VAR動作=新しいExt.data.Operation使用してみてください({ 処置: '読み取り' を })。
store.proxy.read(操作、コールバックメソッド、ストア);

とcallbackmethodの内部では、operation.response.responseTextを使用してロジックを配置し、サーバーから新しいデータを取得します。

0

ストアを正常にロードします。 Ajax.requestを実行して、天気を計算するサーバーメソッドに変更を加えます。サーバーメソッドが変更があったとしたら、再度ストアロードを呼び出します。

理論上Websocketは、サーバーにクライアントを更新させる正しい方法です。

関連する問題