提高浏览器加载页面效率的讨论
2011-01-01 19:58
218 查看
当页面内容很多时,主要是dom的节点很多时,浏览器打开网页的速度主要受dom节点的加载时间影响。我做了一个这样的实验:使用firefox和ie通过在线和离线两种方式打开一个网页(包含一个20000行*10列的表格),验证打开网页的时间。使用firefox打开,server端用时在15s左右,浏览器打开需20s左右;使用ie打开,server端用时4s左右,浏览器打开需6s左右。
时间的计算方法:在server端,在php脚本的开始生成表格之前记录开始时间,在表格输出之后打印用时。浏览器端则在<body>后记录开始时间,在onload()中提示用时。但这样计算的浏览器打开页面的用时并不准确,自onload执行到浏览器将所有内容显示出来用时无法统计,不知道大家有什么好方法。
从结果上看,可能是浏览器没创建一个新的dom节点都要在dom树上游历。而且dom树越大越深,插入一个新节点的用时也越长。统计结果可以从下面看出。
加载10000*10的表格时,firefox每千行的加载时间约700ms,ie每千行的加载时间约170ms。
加载20000*10的表格时,firefox每千行的加载时间约1000ms,ie每千行的加载时间约170ms。
加载25000*10的表格时,firefox每千行的加载时间约1200ms,ie每千行的加载时间约190ms。
当输出一个结果复杂,内容繁多的报表时,ie浏览器会加载几分钟,并且加载过程中浏览器处于阻塞的状态。
尽管输出的内容一样多,但随页面布局的不同,会影响dom树的形状,这样也会造成浏览器加载时间的差异。比如输出一个很复杂且内容很多的报表,将所有的表格套在一个<div>下,速度就不如去掉<div>。表格套进表格里就不如将表格都并列开来。
此外要使节点尽可能少,比如100行的表格就要创建数百个节点,而将内容格式化后保存成字符串,在保存在<input type="hidden" value="内容">中,就可以只用一个节点保存100行的内容。
以上面的例子20000*10行的表格,将内容保存在200个<input type="hidden">元素中,firefox和ie的加载时间差不多是0.04s,在线打开也只需不到2s的时间。
本文转自www.35java.com
时间的计算方法:在server端,在php脚本的开始生成表格之前记录开始时间,在表格输出之后打印用时。浏览器端则在<body>后记录开始时间,在onload()中提示用时。但这样计算的浏览器打开页面的用时并不准确,自onload执行到浏览器将所有内容显示出来用时无法统计,不知道大家有什么好方法。
从结果上看,可能是浏览器没创建一个新的dom节点都要在dom树上游历。而且dom树越大越深,插入一个新节点的用时也越长。统计结果可以从下面看出。
加载10000*10的表格时,firefox每千行的加载时间约700ms,ie每千行的加载时间约170ms。
加载20000*10的表格时,firefox每千行的加载时间约1000ms,ie每千行的加载时间约170ms。
加载25000*10的表格时,firefox每千行的加载时间约1200ms,ie每千行的加载时间约190ms。
当输出一个结果复杂,内容繁多的报表时,ie浏览器会加载几分钟,并且加载过程中浏览器处于阻塞的状态。
尽管输出的内容一样多,但随页面布局的不同,会影响dom树的形状,这样也会造成浏览器加载时间的差异。比如输出一个很复杂且内容很多的报表,将所有的表格套在一个<div>下,速度就不如去掉<div>。表格套进表格里就不如将表格都并列开来。
此外要使节点尽可能少,比如100行的表格就要创建数百个节点,而将内容格式化后保存成字符串,在保存在<input type="hidden" value="内容">中,就可以只用一个节点保存100行的内容。
以上面的例子20000*10行的表格,将内容保存在200个<input type="hidden">元素中,firefox和ie的加载时间差不多是0.04s,在线打开也只需不到2s的时间。
本文转自www.35java.com
相关文章推荐
- 百度地图API异步加载,提高页面效率
- 浏览器渲染页面和加载页面机制
- 浏览器的加载与页面性能优化
- 浏览器的加载与页面性能优化
- 关于pjax 如何设置不缓存加载页面里面的js文件和不修改浏览器中的URL地址
- js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
- 提高页面加载速度简单易行的四个办法。
- 给程序增加一个加载页面,提高用户体验
- 超出指定距离固定导航(微信浏览器页面没有加载完获取控件属性办法)
- 关于提高浏览器渲染页面速度的建议
- Nginx开启Gzip压缩大幅提高页面加载速度
- 浏览器的加载与页面性能优化
- 提高Web端页面加载速度的6个方法
- Web前端性能优化——如何提高页面加载速度
- Selenium总结:模拟浏览器动态加载页面
- 浏览器页面中交互控件的自动加载
- 浏览器是怎么加载页面的
- 浏览器加载页面元素顺序