2011-12-28 103 views
2

我有一個非常繁忙的用戶界面,大量不斷更新而沒有互動(想象一個長期的股票報價列表或投資組合)的DOM,我開始看到它減緩,特別是在IE中。它真的顯示了JavaScript引擎的差異。儘管我非常努力地遵循jQuery選擇器,DOM操作和其他方面的所有最佳實踐,但我認爲我可以做更多。只更新可見的DOM元素?

我想只更新可見的用戶界面部分。所以不知何故,我只想更新用戶視口內和用戶滾動時的DOM元素,直到滾動停止時才執行對可見DOM元素的更新。

這與在頁面上有很多圖像時使用的方法類似,只有當圖像滾動到視圖中時纔會加載。 這聽起來像是一個複雜的目標,但如果之前已經完成,那麼它很好奇。我甚至不確定這是可能的。

+0

您可以使用jQuery可見選擇http://api.jquery.com/visible-selector/ – 2011-12-28 20:43:55

+0

不認爲這就是我需要的。這只是可見的(不隱藏)。我需要像「給我所有元素與這個類在用戶的視口內。 – ijjo 2011-12-28 21:08:04

回答

2

是的,絕對有可能。您需要將onScroll事件偵聽器與一個遍歷DOM的方法結合使用,並快速消除不在視口中的任何元素。有多種方法可以檢查DOM是否在視圖中。其中一個我遇到的最好的是這個答案詳細介紹:

Check if element is visible after scrolling