2011-08-16 60 views
0

我正在使用帶有Ajax代理(XML閱讀器)的extjs網格來加載數據。應用程序的要求是,Proxy將從服務器獲取所有數據,但只有在需要添加/刪除內容時才應重新加載或刷新網格。如何在不使用store.load方法的情況下從extjs存儲中從服務器獲取代理數據

我已經搜查,但可能是我缺少的東西或不正確的方式搜索。

這是我想要做的。 1)從服務器和rander獲取初始網格數據。 2)在本地存儲數據。 2)5秒後再次獲得服務器響應,但只有在某些事情發生變化時才比較本地數據並調用網格刷新。在用戶離開此頁面之前無限制地進行此操作。

我的問題是我怎麼能得到Proxy.Read()或類似的東西來捕獲XML響應第一次以及任何後續的請求。一旦我能得到答覆,我知道如何進一步進行。

在此先感謝您的幫助。

Jignesh

回答

0

使用相同的代碼作爲AbstractStore.load方法並指定自己的回調。

+0

你是說要替換onProxyLoad方法嗎?有什麼方法可以重寫onProxyLoad方法,而不是修改商店源。使用Store的load方法的問題在於,一旦負載由回調處理,它仍然會刷新整個網格。我只希望在回調需要的時候刷新網格。商店的load方法總是刷新並不重要,你有回調函數。 –

+0

我想要一些像使用代理的processResponse而不使用存儲加載的示例。我不知道確切的語法,但應該像proxy.read(callback:processResponse)。 –

0

嘗試使用
VAR操作=新Ext.data.Operation({ 動作: '讀' });
store.proxy.read(operation,callbackmethod,store);

and inside callbackmethod把你的邏輯,而使用operation.response.responseText從服務器獲取新的數據。

0

正常加載商店。然後將Ajax.request運行到服務器方法,該方法將計算天氣或不存在變化。如果服務器方法說有變化,則再次調用存儲區加載。

理論上,Websockets是讓服務器更新客戶端的正確方法。

相關問題