2012-01-20 30 views
3

我正在設計一個單頁網站。網站中的所有部分都以DIV元素的形式彈出,因此它永遠不會離開實際的瀏覽器頁面。最初,我使用「display:none」隱藏了所有使用css的部分,並且導航顯示並相應地隱藏了它們。「顯示:無」預加載是否有明智的限制?

現在我已經把投資組合部分放在一起,我開始懷疑是否最好爲每個投資組合項目使用AJAX,因爲它們包括更大的圖像。有什麼粗略的指導來預測什麼是合理的限制?如果所有的項目都預先加載,那麼HTML文件看起來會非常怪異。

我意識到這是一個普遍的問題,它感覺像預加載一切都是一個壞主意,但我不想去預感。我不太確定元素設置爲「display:none」時,用戶計算機會佔用哪些資源(例如,是否是RAM問題?)。

乾杯! :)

回答

1

正如@Digbyswift所提到的,擁有一個包含大量元素的大型HTML文件會增加頁面大小,從而影響整體加載時間。

對於舊版本的瀏覽器,頁面上的元素數量會產生更明顯的影響,但是您必須進入數千個元素範圍的十幾個才能開始達到上限。

對於現代瀏覽器,您沒有儘可能少的元素數量限制,所以您應該在那裏很好,但是,如果您正在與元素進行大量的JavaScript交互,它會減慢速度強大的客戶,如移動設備。

最大權衡你面對的,在我看來,是由具有代替了一堆各個呼叫的一個更大的頁面,您可以有效交易與小數量的單個服務器響應的大小需要回應。根據你的具體情況,它可能是是一個有利的整體交易,或者它可能不是。

我會說,你需要測試它所作出的差異,並根據您的決定。有一件事會影響到響應(也就是GZip或Deflate)。

此外,對於「投資組合」,您提到有很多大型圖像。就個人而言,我可能而不是在該部分的HTML中具有實際<img />標記,以防止瀏覽器初始加載所有標記,而是根據需要加載中的圖像通過使用JavaScript編寫元素,因爲這些圖像需要被顯示。有很多技術可以做到這一點,任何你可以添加更多的智慧圖像被加載,但減少這些大型服務器調用將加速頁面很大。甚至可能有一個巨大的HTML頁面不會是一個性能影響,並可能會使其更快。

+0

感謝您的深入響應。從你所說的我認爲我的預感是正確的,最好用AJAX加載組合項目(因爲圖像),同時將所有其他項目保留在原始HTML文件中。我也喜歡你的想法,分別加載圖像項目的圖像,可能是一個選項。 – AlexKempton

0

將所有元素硬編碼到HTML中的問題主要是文件變得多大,因此用戶下載該HTML頁面需要多長時間。這取決於您的受衆是誰以及您希望他們訪問該頁面的方式。例如,一個大的HTML頁面不適用於移動設備。

但是,您需要權衡所需的AJAX腳本的文件大小是否大於實際的硬編碼HTML。

+0

爲響應而歡呼,我沒有真正考慮過移動設備,因爲設計的複雜性,它可能需要一個完全不同的移動模板。 – AlexKempton

0

首先,現代瀏覽器(如Firefox,Chrome,IE等)上有巨大的內存。用戶可以將它設置得越來越容易...

在移動瀏覽器中,它們限制了大約10MB。你可以在這裏閱讀更多關於限制內存的信息:http://www.yuiblog.com/blog/2010/06/28/mobile-browser-cache-limits/

+0

感謝您的回覆。那麼你會說這是專門針對瀏覽器緩存嗎?是不是有點不同,因爲所有文件都保存在文檔中而不是緩存中(或緩存中)? – AlexKempton

+0

不可以。許多代碼和許多不可用的變量會在移動瀏覽器上導致內存泄漏... – KimKha