2014-01-15 85 views
0

我正在建立一個響應網站。但在手機上,加載需要花費很多時間。我認爲這是因爲JavaScript。在慢速手機上,執行JavaScript可能是一個問題。因此,如果我隱藏將由JavaScript處理的一些元素(display: none),那麼這些元素的所有腳本是否將以正常或其他方式執行?
也許這是一個糟糕的問題,但有人請解釋在這種情況下JavaScript的工作原理。在HTML元素CSS顯示後javascript運行:沒有執行?

+4

這本來很容易測試。 – meagar

回答

3

是的,除非您使用的是:visible選擇器,否則jQuery仍然會在DOM中找到使用display:none樣式的元素。

2

JavaScript仍然可以看到這些元素。

有一個很多東西可以傷害在手機上的表現,並有很多事情可以做,以幫助它更好(淺CSS選擇器,事件代表團,離DOM操作,重組JS模塊化,懶惰加載到一個頁面,.png優化圖像,串聯和壓縮的JS/CSS,對象池用於內存管理)...

很多東西擠出更多的性能的手機......

但是「display:none」不會阻止JS看到或使用這些元素,並且如果你正在做很多查詢選擇器的東西:

$(「#my-div .my-span」)。each(「...」);

它會保持正確的做法。

2

在HTML元素上設置爲none的顯示不會阻止JavaScript被執行。否則,使用JavaScript顯示和/或隱藏元素會很麻煩。

爲了加快您的網站,有一些可以使用的技術。很多都取決於你的情況。聽起來您可能會從後期加載JavaScript中受益,即將其移動到身體標記的底部。這樣做可以讓您的頁面在加載所有JavaScript之前進行渲染。

Google的PageSpeed可能會幫助您指導其他方式來改善您的網頁加載時間。

https://developers.google.com/speed/docs/insights/about

相關問題