2011-01-11 60 views
5

我注意到有些頁面幾乎立即開始渲染,而另一些則需要等到很多或所有的資源(javascript,image,css)都被下載。最糟糕的情況似乎是一個大頁面,一個慢速連接或服務器上。我正在查看的一個特定頁面出現在將近2 MB,包含30個不同的.js文件,一打.css文件和80個圖像。是什麼阻止HTML頁面利用漸進式渲染?

我知道http://developer.yahoo.com/performance/rules.html的建議,但是會阻止瀏覽器嘗試呈現該頁面直到最後一個元素被下載爲止?

回答

1

有幾個原因可能會發生。我看到的最常見的是大表格。

例如,Internet Explorer在完成加載之前不喜歡渲染表。

儘管每個瀏覽器都有點不同,但它們呈現的東西仍然在下載。

+0

我對可能對其有影響的產品一覽感興趣。就我而言,頁面中沒有任何表格,儘管有50個左右的嵌入腳本。 – chris 2011-01-11 18:46:42

+0

@chris,如果你能給我們一個鏈接和你遇到麻煩的瀏覽器會有幫助。我不能給你一個列表,因爲*所有*都會影響它。 – Brad 2011-01-11 19:43:57

1

一般規則是不使用關於結構的標籤來影響佈局。使用頁面開始處的樣式,渲染引擎知道如何渲染頁面的某個部分,但始終需要等待部分下載才能知道如何正確渲染。

考慮到這一點:

  1. 表格應rearely(?從不)被用於佈局的目的。
  2. 應該首先合理呈現的部分(側邊欄,工具欄以及任何框住頁面的部分)應該位於HTML文檔的頂部。

今天使用的巨大JavaScript庫不同,它們只需要加載(和緩存)一次。