2009-11-20 61 views
0

我對我們的UI使用了dojo,並且希望按順序加載頁面內容的某些部分。例如,對於某個股票,我想加載股票一般信息,如股票代碼,公司名稱,關鍵統計數據等,以及最近30天的開盤價/收盤價。不同的內容將分開從服務器獲取。現在,我想先加載網格,以便用戶可以查看某些內容,然後開始加載大型數據集的關鍵統計信息需要較長時間才能加載。我該怎麼做呢。我想: dojo.addOnLoad(函數(){所以我如何控制dojo中的頁面內容加載順序

startGrid(); //模擬電網啓動功能的正常工作 getKeyStats(); //模擬關鍵統計getter函數也能正常工作 });

但道場加載getKeyStats(),然後startGrid()這裏出於某種原因,並序列似乎並不爲此事在這裏。那麼我如何可以隨意控制加載順序呢? 在此先感謝!

David

+0

還沒有想出整個評分系統是如何工作的,感謝提醒我。 – 2009-11-26 21:44:32

回答

1

序列無關緊要,因爲它們是異步請求;他們出現在同一個數量級的響應是從服務器,這是不一定相同的順序,因爲他們在被稱爲好評。

加載它們以正確的順序,使您的要求爲正常。添加一個成功響應的回調,將響應數據以任何順序放入共享存儲區。一旦你有適當數量的迴應(在回調結束時檢查它),開始以你喜歡的任何順序將數據插入到頁面中。

+0

嗨,傑夫,謝謝你的回覆,你能否擴展你的答案?所以你說我必須首先加載所有內容,然後將它們插入適當的位置?我真正想要的是異步加載頁面內容,但加載最新的緩慢加載內容。 – 2009-11-20 18:24:35

+0

啊,這聽起來像你有同步請求和慢速的頁面正在捱餓。有一個ajax請求參數,你必須明確地使用(我認爲)來告訴dojo異步執行請求。 – 2009-11-21 00:27:28

+0

你碰巧知道參數設置?任何例子?異步請求是否意味着隨機?所以如果我有多個請求,我不知道哪一個先在AJAX中處理? – 2009-12-04 17:22:02

0

你可能想看看dojo.publish和使用酒館子模式鬆散地耦合這些事件,這樣就可以進行訂購。 Pub sub將允許您提出請求並傾聽所有要觸發的主題。有了這個,你可以異步地調用請求,並在各自的地方加載小部件,同時隱藏它們的樣式並使用pub子使它們基於一系列主題出版物可見。

+0

我以前用過dojo的訂閱/發佈,需要試試這個。但我認爲,由於頁面不同部分的數據需要在不同的時間進行處理,所以我仍然無法控制這個順序,對吧? – 2009-12-04 17:25:36