如何快速的呈现我们的网页(转)

简介:
< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd>

一、我们需达解决的麻烦

减少HTTP请求数. 减少HTTP请求数有什么好处
降低服务器跟客户端的建立和消除HTTP请求和响应Header的开销
减少服务器为HTTP连接的进程和线程的开销,如果可能,还会包括GZIP压缩的CPU开销.
减小被请求文件大小, 减少请求数据占用的网络带宽.
让用户更快的看到想要的结果.
提高客户端渲染速度.
让浏览器同时能请求更多的数据.
提高服务器相应速度.
通过版本化控制客户端Cache.
二、如何解决我们的麻烦

A.如何减少HTTP请求数

合并JS文件跟CSS文件。
合并框架图片以及相对变动较少的图片成一张,通过CSS背景切割来完成渲染,比如:加速图片显示。
合理使用本地Cache来缓存JS/CSS/IMAGE。
合理使用UserData缓存JS文件,对于FF用户可以单独请求服务器,这样能解决80%用户的问题.代码可以蓉儿(meizz)的js framework1(标注1)。
把JS跟CSS合并成一个文件
B.减小被请求文件大小,减少请求数据占用的网络带宽

压缩JS体积:删除JS中空白换行,注释,混淆把长变量换成短变量;
压缩CSS体积:删除CSS注释、写法尽量用简写;
使用(X)HTML+CSS方式搭建网站结构,提高CSS重用性,来减少(X)HTML文件大小;
使用服务器端GZIP压缩JS/ CSS文件,缩小传输文件大小。附注:Apache1跟Apache2的GZIP的效率跟方式不一样的,根据需要自行选择。

嗷嗷补充说明:压缩、合并JS和CSS都由程序处理。而不是自己手动去缩删,不然不利于后期维护。
C.让用户更快的看到想要的结果

用户对于一个站点的白页的忍受时间根据统计是8-12秒。白页的产生可能由于各种原因引起,我们能做的就是怎么让用户能变的稍微能等待更久。

方案1:多做一个引导页,让用户体会其中的变化
案例:mail.aol.com中的loading引导页
方案2:优先载入页面结构以及结构图片,后一步载入当前页面数据,再后一步载入Iframe,Flash等数据.让用户尽早的看到被打开页面的希望.
D.提高客户端渲染速度

这个问题就比较泛泛了,影响客户端的渲染速度有多方面的,主要目的都是提高程序方面的效率.

对于大索引的结构,尽可能的少用索引访问,能用访问兄弟节点的方式尽可能用访问兄弟节点的方式.
字符串拼接尽可能用数组方式
大规模添加节点数据,请不要使用appendChild方式,尽量使用类似innerHTML的insertAdjacentHTML方式,FF下需修正(标注1)
E.让浏览器同时能请求更多的数据.

浏览器默认只是支持单域名同时有两个HTTP请求,使用多域名将能把请求数提高,在网络条件优良的情况下,能更快的下载数据,呈现结果.

F.提高服务器相应速度

对于需快速响应的文件,把其放入快速响应的服务器,应该是不错的方案,优化方案请系统储备组提供.

G.通过版本化控制客户端Cache

通常js/css这类文件改动比较频繁,但是为了加载速度变快,我们有可能需要设定这类文件的过期时间为几天后,这样我们碰到的问题就是,如何及时更新这些在cache的文件?
通过一个简单的配置,通过修改JS的版本来及时告诉浏览器,这些文件必须重新请求了,不要继续使用浏览器cache中的数据. 方案有好几个:

手动改这些js的文件名
手动改这些js的路径
通过URL Rewrite方式来改重定位js路径
通过一个在高响应服务器上的一个js配置告知页面,这个页面该链接哪些JS文件
大版本不变,小版本不断追加,等一定时间后,统一更新,高效利用cache
标注

meizz的js framework还没出正式版,有兴趣在CSDN的页面翻一下
Firefox修正方式
function addHTML(oParentNode, sHTML) {
       if(window.addEventListener) {// for MOZ
           var oRange = oParentNode.ownerDocument.createRange();
           oRange.setStartBefore(oParentNode);
           var oFrag = oRange.createContextualFragment(sHTML);
           oParentNode.appendChild(oFrag);
       }
       else {// for IE5+
           oParentNode.insertAdjacentHTML("BeforeEnd", sHTML);
       }
}

本文链接:http://www.blueidea.com/tech/site/2007/4822.asp



本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2008/08/04/2912114.html    ,如需转载请自行联系原作者 http://www.cnblogs.com/netcorner/archive/2008/08/04/2912114.html

相关文章
|
4天前
|
编解码 前端开发 UED
网页设计中图标的重要性及其两种主要形式:传统网页图标与字体图标。传统图标视觉效果丰富但文件较大
本文探讨了网页设计中图标的重要性及其两种主要形式:传统网页图标与字体图标。传统图标视觉效果丰富但文件较大,字体图标体积小且易于维护,但视觉表现较简单。文章还介绍了它们的实际应用案例及使用时的注意事项,旨在帮助设计师根据项目需求选择合适的图标形式,提升网页的美观性和用户体验。
16 7
多媒体标签让你的网页,内容很丰富!
多媒体标签让你的网页,内容很丰富!
|
6月前
|
数据采集 JavaScript 前端开发
HTML表单深度解析:构建互动的网页界面
HTML表单深度解析:构建互动的网页界面
|
7月前
|
前端开发 搜索推荐 开发者
CSS不仅使得网页内容的呈现多样化和个性化成为可能,还大大简化了样式表的编写工作
【4月更文挑战第6天】CSS不仅使得网页内容的呈现多样化和个性化成为可能,还大大简化了样式表的编写工作
46 3
|
7月前
文字渲染.html(网上收集2)
文字渲染.html(网上收集2)
|
定位技术 Android开发
如何做一个简单的网页版地图
如何做一个简单的网页版地图
212 1
网页的基本布局
网页的基本布局
75 0
|
Web App开发 前端开发
网页|如何实现网页变灰效果
网页|如何实现网页变灰效果
124 0
标签之美七——为网页添加音乐
标签之美七——为网页添加音乐
144 0
|
传感器 Web App开发
制作简易图像浏览器,互联网营销
  先发点牢骚放松下心情, 最近完全没有做项目的动力,每天感觉脑子昏昏沉沉的没有一点状态。   一来可能快春节了,自己离家比较远也在担心何时回家何时购票,   二来公司程序员就我一个人在单干,软件 项目什么的做好了,却不能接受一次又一次的添加功能和修改数据库,(我真的很想骂某个人的娘)   三来也老早计划好了11年4月份一年合同到期后就离职,现在好像一点都静不下心来   如果有各位同僚给我开解开解我也好恢复下心境。
1007 0