一.我们需要解决的麻烦
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: */*');?>
<!-- /*
window.onload=function(){
document.getElementById("test2").innerHTML="传说中滴JS测试者。如果你看到我,那<strong>JS</strong>也生效了";
}
<!-- */
<!-- #test1,#test2{border:3px #000 solid;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-repeat left};
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等数据.让用户尽早的看到被打开页面的希望."Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("xml.xml");
var node=xmlDoc.documentElement.firstChild;
var a=[],i=-1;
do a[++i]=node.getAttribute("text");
while(node=node.nextSibling);
a=a.join("");
document.write(a.length);
alert(new Date()-t1);
引用
2. 字符串拼接尽可能用数组方式
<script language="JScript">
function StringBuilder(sString){//字符串连接操作类
this.length=0;
this.append=function(sString){
this.length+=(this._parts[this._current++]=String(sString)).length;
this._string=null;
return this;
}
this.toString=function(){
if(this._string!=null)
return this._string;
var s=this._parts.join("");
this._parts=[s];
this._current=1;
return this._string=s;
}
this._current=0;
this._parts=[];
this._string=null;
if(sString!=null)
this.append(sString);
}
var str=new StringBuilder();
str.append("a");
str.append("b");
alert(str.toString());
</script>
引用
3. 大规模添加节点数据,请不要使用appendChild方式,尽量使用类似innerHTML的insertAdjacentHTML方式,FF下需修正
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);
}
}
E让浏览器同时能请求更多的数据.
浏览器默认只是支持单域名同时有两个HTTP请求,使用多域名将能把请求数提高,在网络条件优良的情况下,能更快的下载数据,呈现结果.
对于images2这样的机器,为什么能同时有超过2个以上请求数,有待考察.
F.对于需快速响应的文件,把其放入快速响应的服务器,应该是不错的方案,优化方案请系统储备组提供.
G.通过版本化控制客户端Cache.
通常js/css这类文件改动比较频繁,但是为了加载速度变快,我们有可能需要设定这类文件的过期时间为几天后,这样我们碰到的问题就是,如何及时更新这些在cache的文件?
通过一个简单的配置,通过修改JS的版本来及时告诉浏览器,这些文件必须重新请求了,不要继续使用浏览器cache中的数据.
方案有好几个:
1. 手动改这些js的文件名
2. 手动改这些js的路径
3. 通过URL Rewrite方式来改重定位js路径
4. 通过一个在高响应服务器上的一个js配置告知页面,这个页面该链接哪些JS文件
5. 大版本不变,小版本不断追加,等一定时间后,统一更新,高效利用cache
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: */*');?>
<!-- /*
window.onload=function(){
document.getElementById("test2").innerHTML="传说中滴JS测试者。如果你看到我,那<strong>JS</strong>也生效了";
}
<!-- */
<!-- #test1,#test2{border:3px #000 solid;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-repeat left};
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等数据.让用户尽早的看到被打开页面的希望."Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("xml.xml");
var node=xmlDoc.documentElement.firstChild;
var a=[],i=-1;
do a[++i]=node.getAttribute("text");
while(node=node.nextSibling);
a=a.join("");
document.write(a.length);
alert(new Date()-t1);
引用
2. 字符串拼接尽可能用数组方式
<script language="JScript">
function StringBuilder(sString){//字符串连接操作类
this.length=0;
this.append=function(sString){
this.length+=(this._parts[this._current++]=String(sString)).length;
this._string=null;
return this;
}
this.toString=function(){
if(this._string!=null)
return this._string;
var s=this._parts.join("");
this._parts=[s];
this._current=1;
return this._string=s;
}
this._current=0;
this._parts=[];
this._string=null;
if(sString!=null)
this.append(sString);
}
var str=new StringBuilder();
str.append("a");
str.append("b");
alert(str.toString());
</script>
引用
3. 大规模添加节点数据,请不要使用appendChild方式,尽量使用类似innerHTML的insertAdjacentHTML方式,FF下需修正
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);
}
}
E让浏览器同时能请求更多的数据.
浏览器默认只是支持单域名同时有两个HTTP请求,使用多域名将能把请求数提高,在网络条件优良的情况下,能更快的下载数据,呈现结果.
对于images2这样的机器,为什么能同时有超过2个以上请求数,有待考察.
F.对于需快速响应的文件,把其放入快速响应的服务器,应该是不错的方案,优化方案请系统储备组提供.
G.通过版本化控制客户端Cache.
通常js/css这类文件改动比较频繁,但是为了加载速度变快,我们有可能需要设定这类文件的过期时间为几天后,这样我们碰到的问题就是,如何及时更新这些在cache的文件?
通过一个简单的配置,通过修改JS的版本来及时告诉浏览器,这些文件必须重新请求了,不要继续使用浏览器cache中的数据.
方案有好几个:
1. 手动改这些js的文件名
2. 手动改这些js的路径
3. 通过URL Rewrite方式来改重定位js路径
4. 通过一个在高响应服务器上的一个js配置告知页面,这个页面该链接哪些JS文件
5. 大版本不变,小版本不断追加,等一定时间后,统一更新,高效利用cache
标签:
优化网页之快速的呈现我们的网页
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“优化网页之快速的呈现我们的网页”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
2024年11月14日
2024年11月14日
- 黑鸭子2008-今生最爱[首版][WAV+CUE]
- 彭海桐.2000-好好想想你【SONY】【WAV+CUE】
- 群星.1995-亚洲电视剧集主题曲大全·乐作剧2CD【滚石】【WAV+CUE】
- 林强.1992-春风少年兄【魔岩】【WAV+CUE】
- 世界顶级汽车音响试音王《金色的草原》24K金碟[低速原抓WAV+CUE][1G]
- 周深 /Faouzia《解密 电影原声带》[320K/MP3][39.32MB]
- 周深 /Faouzia《解密 电影原声带》[FLAC/分轨][199.46MB]
- 英雄联盟s14亚军队伍是哪支 英雄联盟s14亚军队伍介绍
- 英雄联盟s14夺冠队伍是哪支 英雄联盟s14夺冠队SKT T1队伍介绍
- faker三冠王是哪几个赛季 faker三冠王赛季介绍
- 岩贵-音乐磁场(AI调音)2CD[WAV]
- 童丽《千愁记旧情》HQII头版限量编号2024[低速原抓WAV+CUE]
- 瑞鸣十五周年纪念3[HQCD限量编号头版][低速原抓WAV+CUE]
- 任天堂专利展示新VR外设:或会随同NS继任机型推出
- 博主制作“Switch 2”模型 与现有掌机对比