2011-01-11 61 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库不同,它们只需要加载(和缓存)一次。