欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2007年06月29日 00:00:00   作者:  
一.我們需要解決的麻煩
       A.減少HTTP請求數(shù).
               減少HTTP請求數(shù)有什么好處:
                      降低服務(wù)器跟客戶端的建立和消除HTTP請求和響應(yīng)Header的開銷
                        減少服務(wù)器為HTTP連接的進(jìn)程和線程的開銷,如果可能,還會包括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.合并框架圖片以及相對變動較少的圖片成一張,通過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)頁,讓用戶體會其中的變化
                               案例: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)該是不錯的方案,優(yōu)化方案請系統(tǒng)儲備組提供.

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

相關(guān)文章

  • 七種JS實(shí)現(xiàn)數(shù)組去重的方式

    七種JS實(shí)現(xiàn)數(shù)組去重的方式

    這篇文章主要介紹了七種JS實(shí)現(xiàn)數(shù)組去重的方式,下面文章以JS數(shù)組去重的相關(guān)資料展開全文內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2021-12-12
  • Echarts圖表點(diǎn)擊x軸y軸切換圖表二級數(shù)據(jù)實(shí)例代碼

    Echarts圖表點(diǎn)擊x軸y軸切換圖表二級數(shù)據(jù)實(shí)例代碼

    最近項(xiàng)目用到了Echarts圖進(jìn)行數(shù)據(jù)展示,所以下面這篇文章主要給大家介紹了關(guān)于Echarts圖表點(diǎn)擊x軸y軸切換圖表二級數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • JavaScript中幾種常見排序算法小結(jié)

    JavaScript中幾種常見排序算法小結(jié)

    JavaScript中幾種常見排序算法小結(jié),學(xué)習(xí)js的朋友可以參考下,下面對多種方法進(jìn)行了簡單的小結(jié)。
    2011-02-02
  • JavaScript設(shè)計(jì)模式之門面模式原理與實(shí)現(xiàn)方法分析

    JavaScript設(shè)計(jì)模式之門面模式原理與實(shí)現(xiàn)方法分析

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之門面模式原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了門面模式的原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • Bootstrap基本插件學(xué)習(xí)筆記之模態(tài)對話框(16)

    Bootstrap基本插件學(xué)習(xí)筆記之模態(tài)對話框(16)

    這篇文章主要為大家詳細(xì)介紹了Bootstrap基本插件學(xué)習(xí)筆記之模態(tài)對話框的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript刪除數(shù)組元素的方法指南

    JavaScript刪除數(shù)組元素的方法指南

    作為一名前端開發(fā)工程師,我們經(jīng)常需要在 JavaScript 中操作數(shù)組,其中比較常見的操作便是對數(shù)組進(jìn)行元素的添加、刪除和修改。在這篇文章中,我會詳細(xì)介紹JS中所有刪除數(shù)組元素的方法,希望對大家有所幫助
    2023-05-05
  • JavaScript對象學(xué)習(xí)小結(jié)

    JavaScript對象學(xué)習(xí)小結(jié)

    JavaScript 中的所有事物都是對象:字符串、數(shù)值、數(shù)組、函數(shù).幾乎用到的每個(gè)js都離不開它的js對象。此外,JavaScript 允許自定義對象,下面跟著小編學(xué)習(xí)javascript對象學(xué)習(xí)小結(jié),需要的朋友可以參考下
    2015-09-09
  • Javascript實(shí)現(xiàn)秒表倒計(jì)時(shí)功能

    Javascript實(shí)現(xiàn)秒表倒計(jì)時(shí)功能

    這篇文章主要為大家詳細(xì)介紹了Javascript實(shí)現(xiàn)秒表倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • JS使用base64格式上傳文件

    JS使用base64格式上傳文件

    這篇文章主要為大家詳細(xì)介紹了JS使用base64格式上傳文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JS生成唯一id方式之UUID和NanoID

    JS生成唯一id方式之UUID和NanoID

    這篇文章主要介紹了JS生成唯一id方式之UUID和NanoID,唯一id有了更好的方式,那就是NanoID,今天這篇文章記錄一下NanoID 正在取代 UUID?及js 生成uuid及NanoID的方法,下面來看文章的詳細(xì)介紹
    2021-12-12

最新評論