- Launching code on document ready是jQuery的支柱。
- 但有時候,冗長的操作將在ready事件中執行。
- 例如,將多個carousel實例附加到冗長的無序列表需要一些時間。
我怎樣才能提高準備活動期間感知的響應?
例如:
- 我可以彈出一個thickbox實例與 '你知道嗎?'部分隱藏了底層的DOM操作?
- ...然後在ready事件完成時自動關閉該thickbox實例?
我怎樣才能提高準備活動期間感知的響應?
例如:
您給予用戶將獲得更好的感知響應每一個反饋。加載圖像是經典的 - 並且衆所周知(即與用戶心智模型一致)。厚盒子本身可能很煩人 - 但如果你將它與一個加載信息結合起來,就像遊戲行業的大多數人已經發現的那樣,它將通過同時教育用戶和提供反饋來產生更好的結果。
[編輯]
事情是這樣的:
$(function() {
tb_show(caption, url, imageGroup); // show thickbox
/* lengthy operation here */
tb_remove(); // remove thickbox
});
[/編輯]
除了進度指標,您可以使用JavaScript setTimeout
功能用很短的parallelise多個操作時間到。這有效地允許您在瀏覽器中使用多個線程,以異步方式運行每個操作。
只有在您的操作不依賴於彼此進行排序或計時時,才使用此技術,並且不要一次創建太多超時,否則可能會導致瀏覽器由於內存使用量增加而掛起。
另請注意,瀏覽器有一個最小超時時間,通常在10-20ms左右,但在瀏覽器之間會有所不同;它應該足夠短以致不明顯。如果將超時設置爲0,則默認爲瀏覽器最小值。
這裏是你的旋轉木馬安裝一個簡單的例子,列出分成兩組:
setTimeout(function() {
// code for attaching first carousel group
// ...
}, 0);
setTimeout(function() {
// code for attaching second carousel group
// ...
}, 0);
我同意;但我真的很想知道這是否可能,以及是否有人使用jQuery完成了此操作。 – 2009-08-28 01:51:44
這是可能的,jQuery與它無關 - 只需在ready事件開始時彈出thickbox,然後執行操作,並在準備就緒時將其隱藏起來 – 2009-08-28 07:10:04