手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >优化网页之快速的呈现我们的网页
优化网页之快速的呈现我们的网页
摘要:一.我们需要解决的麻烦A.减少HTTP请求数.减少HTTP请求数有什么好处:降低服务器跟客户端的建立和消除HTTP请求和响应Header的开...

一.我们需要解决的麻烦

A.减少HTTP请求数.

减少HTTP请求数有什么好处:

降低服务器跟客户端的建立和消除HTTP请求和响应Header的开销

减少服务器为HTTP连接的进程和线程的开销,如果可能,还会包括GZIP压缩的CPU开销.

B.减小被请求文件大小,减少请求数据占用的网络带宽.

C.让用户更快的看到想要的结果.

D.提高客户端渲染速度.

E让浏览器同时能请求更多的数据.

F.提高服务器相应速度.

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

引用

二.如何解决我们的麻烦

A.如何减少HTTP请求数

1.合并JS文件跟CSS文件.

2.合并框架图片以及相对变动较少的图片成一张,通过CSS背景切割来完成渲染.

3.合理使用本地Cache来缓存JS/CSS/IMAGE.

4.合理使用UserData缓存JS文件,对于FF用户可以单独请求服务器,这样能解决80%用户的问题.

5.把JS跟CSS合并成一个文件

写法如下:

<?header('Content-type:*/*');?>

<*/

<!--#test1,#test2{border:3px#000solid;padding:5px;color:#123456;background-color:#ccc;}strong{color:red;}

引用

以上内容的文件同时被JS跟Style引用,都是有效的

B.减小被请求文件大小,减少请求数据占用的网络带宽

1.压缩JS体积

删除JS中空白换行,注释,混淆把长变量换成短变量

2.压缩CSS体积

删除CSS注释

CSS中的写法尽量用简写,比如:

.bak{background:url(sina.gif)no-repeatleft};

3.使用DIV+CSS方式搭建网站结构,提高CSS重用性,来减少HTML文件大小.

4.使用服务器端GZIP压缩JS/CSS文件,缩小传输文件大小.

附注:Apache1跟Apache2的GZIP的效率跟方式不一样的,根据需要自行选择

C.让用户更快的看到想要的结果

用户对于一个站点的白页的忍受时间根据统计是8-12秒.

对于用户能忍受的页面白页时间是8-10秒,白页的产生可能由于各种原因引起,我们能做的就是怎么让用户能变的稍微能等待更久.

方案1.多做一个引导页,让用户体会其中的变化

案例:mail.aol.com中的loading引导页

方案2.优先载入页面结构以及结构图片,后一步载入当前页面数据,再后一步载入Iframe,Flash等数据.让用户尽早的看到被打开页面的希望.

D.提高客户端渲染速度

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

1.对于大索引的结构,尽可能的少用索引访问,能用访问兄弟节点的方式尽可能用访问兄弟节点的方式.

vart1=newDate();

varxmlDoc=newActiveXObject("Microsoft.XMLDOM");

xmlDoc.async="false";

xmlDoc.load("xml.xml");

varnode=xmlDoc.documentElement.firstChild;

vara=[],i=-1;

doa[++i]=node.getAttribute("text");

while(node=node.nextSibling);

a=a.join("");

document.write(a.length);

alert(newDate()-t1);

引用

2.字符串拼接尽可能用数组方式

<scriptlanguage="JScript">

functionStringBuilder(sString){//字符串连接操作类

this.length=0;

this.append=function(sString){

this.length+=(this._parts[this._current++]=String(sString)).length;

this._string=null;

returnthis;

}

this.toString=function(){

if(this._string!=null)

returnthis._string;

vars=this._parts.join("");

this._parts=[s];

this._current=1;

returnthis._string=s;

}

this._current=0;

this._parts=[];

this._string=null;

if(sString!=null)

this.append(sString);

}

varstr=newStringBuilder();

str.append("a");

str.append("b");

alert(str.toString());

</script>

引用

3.大规模添加节点数据,请不要使用appendChild方式,尽量使用类似innerHTML的insertAdjacentHTML方式,FF下需修正

functionaddHTML(oParentNode,sHTML){

if(window.addEventListener){//forMOZ

varoRange=oParentNode.ownerDocument.createRange();

oRange.setStartBefore(oParentNode);

varoFrag=oRange.createContextualFragment(sHTML);

oParentNode.appendChild(oFrag);

}

else{//forIE5+

oParentNode.insertAdjacentHTML("BeforeEnd",sHTML);

}

}

E让浏览器同时能请求更多的数据.

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

对于images2这样的机器,为什么能同时有超过2个以上请求数,有待考察.

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

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

通常js/css这类文件改动比较频繁,但是为了加载速度变快,我们有可能需要设定这类文件的过期时间为几天后,这样我们碰到的问题就是,如何及时更新这些在cache的文件?

通过一个简单的配置,通过修改JS的版本来及时告诉浏览器,这些文件必须重新请求了,不要继续使用浏览器cache中的数据.

方案有好几个:

1.手动改这些js的文件名

2.手动改这些js的路径

3.通过URLRewrite方式来改重定位js路径

4.通过一个在高响应服务器上的一个js配置告知页面,这个页面该链接哪些JS文件

5.大版本不变,小版本不断追加,等一定时间后,统一更新,高效利用cache

【优化网页之快速的呈现我们的网页】相关文章:

一个很简单的办法实现TD的加亮效果.

JS获取当前脚本文件的绝对路径

Javascript实现飞动广告效果的方法

JQuery实现带排序功能的权限选择实例

网页里控制图片大小的相关代码

JS与Java在网页设计中的区别

巧妙破除网页右键禁用的十大绝招

IE中直接运行显示当前网页中的图片 推荐

js控制网页前进和后退的方法

网页常用特效代码整理

精品推荐
分类导航