一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

優(yōu)化網(wǎng)頁之快速的呈現(xiàn)我們的網(wǎng)頁

一.我們需要解決的麻煩
       A.減少HTTP請求數(shù).
               減少HTTP請求數(shù)有什么好處:
                      降低服務(wù)器跟客戶端的建立和消除HTTP請求和響應(yīng)Header的開銷
                        減少服務(wù)器為HTTP連接的進(jìn)程和線程的開銷,如果可能,還會(huì)包括GZIP壓縮的CPU開銷.
       B.減小被請求文件大小, 減少請求數(shù)據(jù)占用的網(wǎng)絡(luò)帶寬.
       C.讓用戶更快的看到想要的結(jié)果.
       D.提高客戶端渲染速度.
       E讓瀏覽器同時(shí)能請求更多的數(shù)據(jù).
       F.提高服務(wù)器相應(yīng)速度.
       G.通過版本化控制客戶端Cache.



引用
二.如何解決我們的麻煩

       A.如何減少HTTP請求數(shù)
               1.合并JS文件跟 CSS文件.

               2.合并框架圖片以及相對變動(dòng)較少的圖片成一張,通過CSS背景切割來完成渲染.
               3.合理使用本地Cache來緩存JS/CSS/IMAGE.
                               4.合理使用UserData緩存JS文件,對于FF用戶可以單獨(dú)請求服務(wù)器,這樣能解決80%用戶的問題.
                               5.把JS跟CSS合并成一個(gè)文件
                    寫法如下:

                                       

<?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;}


引用
              以上內(nèi)容的文件同時(shí)被JS跟Style引用,都是有效的

       B.減小被請求文件大小,減少請求數(shù)據(jù)占用的網(wǎng)絡(luò)帶寬
               1.壓縮JS體積
                       刪除JS中空白換行,注釋,混淆把長變量換成短變量
               2.壓縮CSS體積
                       刪除CSS注釋
                       CSS中的寫法盡量用簡寫,比如:
                               .bak{background:url(sina.gif) no-repeat left};
               3.使用DIV+CSS方式搭建網(wǎng)站結(jié)構(gòu),提高CSS重用性,來減少HTML文件大小.
               4.使用服務(wù)器端GZIP壓縮JS/ CSS文件,縮小傳輸文件大小.
                       附注:Apache1跟Apache2的GZIP的效率跟方式不一樣的,根據(jù)需要自行選擇

       C.讓用戶更快的看到想要的結(jié)果
               用戶對于一個(gè)站點(diǎn)的白頁的忍受時(shí)間根據(jù)統(tǒng)計(jì)是8-12秒.
       對于用戶能忍受的頁面白頁時(shí)間是8-10秒, 白頁的產(chǎn)生可能由于各種原因引起,我們能做的就是怎么讓用戶能變的稍微能等待更久.

               方案1.多做一個(gè)引導(dǎo)頁,讓用戶體會(huì)其中的變化
                               案例:mail.aol.com中的loading引導(dǎo)頁

                               
               方案2.優(yōu)先載入頁面結(jié)構(gòu)以及結(jié)構(gòu)圖片,后一步載入當(dāng)前頁面數(shù)據(jù),再后        一步載入Iframe,Flash等數(shù)據(jù).讓用戶盡早的看到被打開頁面的希望.

       D.提高客戶端渲染速度
               這個(gè)問題就比較泛泛了,影響客戶端的渲染速度有多方面的,主要目的都是提高程序方面的效率.
               1.        對于大索引的結(jié)構(gòu),盡可能的少用索引訪問,能用訪問兄弟節(jié)點(diǎn)的方式盡可能用訪問兄弟節(jié)點(diǎn)的方式.
               var t1=new Date();
               var xmlDoc=new ActiveXObject("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.        字符串拼接盡可能用數(shù)組方式

               

<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.        大規(guī)模添加節(jié)點(diǎn)數(shù)據(jù),請不要使用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讓瀏覽器同時(shí)能請求更多的數(shù)據(jù).
               瀏覽器默認(rèn)只是支持單域名同時(shí)有兩個(gè)HTTP請求,使用多域名將能把請求數(shù)提高,在網(wǎng)絡(luò)條件優(yōu)良的情況下,能更快的下載數(shù)據(jù),呈現(xiàn)結(jié)果.
               對于images2這樣的機(jī)器,為什么能同時(shí)有超過2個(gè)以上請求數(shù),有待考察.

F.對于需快速響應(yīng)的文件,把其放入快速響應(yīng)的服務(wù)器,應(yīng)該是不錯(cuò)的方案,優(yōu)化方案請系統(tǒng)儲(chǔ)備組提供.

G.通過版本化控制客戶端Cache.
       通常js/css這類文件改動(dòng)比較頻繁,但是為了加載速度變快,我們有可能需要設(shè)定這類文件的過期時(shí)間為幾天后,這樣我們碰到的問題就是,如何及時(shí)更新這些在cache的文件?
       通過一個(gè)簡單的配置,通過修改JS的版本來及時(shí)告訴瀏覽器,這些文件必須重新請求了,不要繼續(xù)使用瀏覽器cache中的數(shù)據(jù).
       方案有好幾個(gè):
               1.        手動(dòng)改這些js的文件名
               2.        手動(dòng)改這些js的路徑
               3.        通過URL Rewrite方式來改重定位js路徑
               4.        通過一個(gè)在高響應(yīng)服務(wù)器上的一個(gè)js配置告知頁面,這個(gè)頁面該鏈接哪些JS文件
               5.        大版本不變,小版本不斷追加,等一定時(shí)間后,統(tǒng)一更新,高效利用cache

JavaScript技術(shù)優(yōu)化網(wǎng)頁之快速的呈現(xiàn)我們的網(wǎng)頁,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 5151四虎永久在线精品免费 | 亚洲青草视频 | 国产精品欧美一区二区在线看 | 国产真实乱子伦视频播放 | 欧美人体极品大胆露私 | 国产色综合一区二区三区 | 91亚洲国产成人久久精品网站 | 夜色网 | 狠狠大日本亚洲香蕉亚洲 | 性无遮挡高清视频免费 | 2022国产91精品久久久久久 | 久久精品中文字幕一区 | 国产视频一区在线播放 | 成人狠狠色综合 | 四虎影永久在线观看网址 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片武则天 | 午夜视频网站在线观看 | 成人看片黄a毛片 | 激情亚洲| 91精品国产麻豆福利在线 | 一本大道加勒比久久综合 | 亚洲精品国产精品国自产 | 女人被免费视频网站 | 日韩第一色 | 91久久国产成人免费观看资源 | 日本一区二区视频免费播放 | 婷婷六月丁 | 国产综合成人观看在线 | 久久精品这里热有精品2015 | 99热成人精品国产免男男 | 国产精品久久久久久永久牛牛 | 伊人婷婷 | 美女视频黄免费 | 精品国产免费观看一区 | 福利在线一区二区 | 国产另类视频 | 国产伦精品一区二区三区视频小说 | 天天干天天干天天干 | 一区二区亚洲视频 | 伊人插 | 香蕉在线视频网站 |