亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

關于Javascript加載執行優化的研究報告

2019-11-20 13:43:21
字體:
來源:轉載
供稿:網友

本人做前端開發一年多了,對前端的見解還是多多少少有一點的,今天特拿出來跟大家分享分享。

做前端開發少不了各種利器。比如我習慣用的還是Google瀏覽器和重型武器Fiddller。

一: 原始情況

首先大家看看如下的代碼:

復制代碼 代碼如下:

估計90%的程序員都會把js文件放在head中,但是大家有沒有深究過呢?很多瀏覽器都會使用單一的線程來做“界面UI的更新”和“JS腳本的處理“,

也就是當執行引擎遇到”<script>“的時候,此時頁面的下載和渲染都必須等待<script>執行完畢。那么對用戶而言就悲哀了,看著鎖住的頁面,

此時用戶很可能就會給你關掉。

從上面的瀑布圖中我們可以看出二點:

第一:

三個js文件并行下載,但是按我上面的理論中js應該是一個接一個的執行。然而在IE8,Firefox3.5和Chrome2都實現了js的并行下載,

這是相當不錯的,但是他還是會阻礙一些其他資源的下載,比如說圖片。

第二:

圖片1.jpg的下載是在js執行完成后觸發的,這也驗證了上面所說的情況,阻止了image的加載。

二:第一步優化

既然js阻止了UI渲染,那么我們可以考慮將js放在</body>前,這樣就可以讓<script>前的html完美的呈現,不會讓用戶看到頁面空白等待

而苦惱的情況,自然就提高了友好性。

復制代碼 代碼如下:

下面的圖也展示了1.jpg和三個js幾乎并行下載和執行。時間由上面的“469ms+”縮小到“326ms”。

三:第二步優化

看上面的“瀑布圖”,估計大家也看出來了,三個js文件進行了三次“Get”請求,大家都知道Get請求是需要帶http頭的,

所以說需要耗費時間,那么我們采取的方案自然就是減少Get請求。通常有兩種方案。

第一:合并js文件,比如將上面的“hello.js"和“world.js“合并掉。

第二:利用第三方工具,比如php中的Minify。

關于第二種做法,taobao用的還是比較多的,看一下其中的一個script,應用了三個js文件。由3個Get請求變為了1個。

四:第三步優化

不管是把js文件放在腳尾,還是三個合并一個,其本質都是”阻塞模式“,就是說鎖死瀏覽器,當web頁面越來越復雜,js文件越來越多,還是

讓我們頭疼的,此時我們就提倡一種“無阻塞模式“加載js腳本,也就是頁面全部呈現完再追加js,也就對應著window.onload事件觸發后,我們才

追加js,這就是所謂的“無阻塞“,但是其中有一個非常要注意的地方就是我們對js的要求是否有嚴格的順序。

第一:無順序要求,比如我對”hello.js“和”world.js"沒有順序要求,那么我們完全可以用jquery來動態追加實現。

復制代碼 代碼如下:

從圖中可以看出,"hello.js"和“world.js"出現在藍色線以后,也就說明這兩個js是在DomContentLoad結束后再進行觸發加載的,這樣就不會造成頁面的鎖定

等待。

第二:有順序要求

為什么一定要有順序要求這個概念呢?對于上面的那個動態追加的“兩個js”文件,在IE系列中,你不能保證hello.js一定會在world.js前執行,

他只會按照服務器端返回的順序執行代碼。

復制代碼 代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="JsLoad.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head id="head">
    <title></title>
    <link href="Styles/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <img src="1.jpg" width="200" height="300" />
    <script type="text/javascript">
        function loadScript(url, callback) {
            var script = document.createElement("script");
            script.type = "text/javascript";

            //IE
            if (script.readyState) {
                script.onreadystatechange = function () {
                    if (script.readyState == "loaded" || script.readyState == "complete") {
                        script.onreadystatechange = null;
                        callback();
                    }
                }
            } else {
                //非IE
                script.onload = function () {
                    callback();
                }
            }
            script.src = url;
            document.getElementById("head").appendChild(script);
        }
        //第一步加載jquery類庫
        loadScript("jquery/jquery-1.4.1.js", function () {
            //第二步加載hello.js
            loadScript("js/hello.js", function () {
                //第三步加載world.js
                loadScript("js/world.js", function () {

                });
            });
        });
    </script>
</body>
</html>

大家也能看到,頁面完全Load的時間其實也就310ms左右,大大提高了網頁的下載呈現和友好型。

同樣也可以看看騰訊網,他也是這么干的。

是不是非常的有用呢,本人這里也是花了些時日來做這些研究測試,希望小伙伴們能看到心里去,畢竟這也是“麻花藤”公司的解決方案,大家參考下吧

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频在线观看免费| 日韩国产精品视频| 日韩av手机在线观看| 亚洲欧美在线免费| 久久在线视频在线| 欧美亚洲另类视频| 国产亚洲精品久久久优势| 国产精品69久久| 久久久久久国产| 亚洲最大在线视频| 亚洲国产成人在线播放| 亚洲第一区中文99精品| 日本午夜人人精品| 91亚洲精品在线观看| 国产欧美最新羞羞视频在线观看| 国产精品久久久一区| 日本精品一区二区三区在线播放视频| 欧美在线视频播放| 91美女高潮出水| 欧美肥臀大乳一区二区免费视频| 欧美性少妇18aaaa视频| 亚洲理论在线a中文字幕| 亚洲一区二区三区777| 久久精品99久久香蕉国产色戒| 中文字幕在线观看亚洲| 欧美在线激情视频| 欧美一级视频免费在线观看| 成人免费网站在线观看| 亚洲国产91色在线| 欧美激情在线播放| 亚洲国产天堂久久国产91| 国产91精品最新在线播放| 国产综合福利在线| 亚洲成人a**站| 欧美成在线观看| 色综合91久久精品中文字幕| 日韩大胆人体377p| 一本色道久久88亚洲综合88| 亚洲日本欧美日韩高观看| 国产精品91在线观看| 91地址最新发布| 精品久久久久久国产91| 精品久久久久国产| 91av视频导航| 亚洲va久久久噜噜噜| 国产成人综合久久| www.xxxx精品| 国产精品aaaa| 国产成人av在线播放| 日韩国产一区三区| 亚洲男人天堂久| 日韩在线视频免费观看| 日韩av在线影视| 亚洲最新av在线网站| 国产婷婷97碰碰久久人人蜜臀| 大荫蒂欧美视频另类xxxx| 亚洲欧洲日产国码av系列天堂| 中文字幕亚洲一区二区三区| 欧美视频第一页| 成人黄色片网站| 久热爱精品视频线路一| 韩国国内大量揄拍精品视频| 色青青草原桃花久久综合| 九九九久久久久久| 97视频在线观看免费高清完整版在线观看| 亚洲精品福利在线观看| 国产日韩在线看| 亚洲精品久久久久久下一站| 97色在线观看免费视频| 欧美极品美女电影一区| 国产一区二区三区精品久久久| 亚洲人成网站免费播放| 亚洲黄色www网站| 国产一区香蕉久久| 国产日韩av高清| 国产在线不卡精品| 欧美日韩在线另类| 欧美精品激情blacked18| 91精品国产高清自在线看超| 亚洲激情久久久| 在线国产精品播放| 欧美高清理论片| 国产一区二区三区日韩欧美| 亚洲欧洲在线视频| 亚洲精品aⅴ中文字幕乱码| 亚洲女在线观看| 日韩激情在线视频| 成人激情av在线| 久久久电影免费观看完整版| 亚洲男人的天堂在线| 久久亚洲电影天堂| 91成人天堂久久成人| 欧美激情2020午夜免费观看| 亚洲成人网在线| 亚洲天堂av女优| 日韩精品中文字幕有码专区| 亚洲性生活视频在线观看| 日韩免费在线视频| 欧美黑人视频一区| 亚洲精品aⅴ中文字幕乱码| 欧美午夜激情在线| 国内精品一区二区三区四区| 久久久久久久久久国产| 韩国精品久久久999| 北条麻妃久久精品| 一区二区三区www| 亚洲网址你懂得| 日韩在线不卡视频| 精品国产欧美成人夜夜嗨| 亚洲成色www8888| 欧美日韩国产一区二区三区| 欧美激情免费视频| 欧美综合在线第二页| 欧美性xxxxx极品| 国产美女直播视频一区| 成人啪啪免费看| 美女999久久久精品视频| 日韩在线视频中文字幕| 欧美激情女人20p| 欧美一级成年大片在线观看| 欧美日韩国产影院| 久久久亚洲国产天美传媒修理工| 国产亚洲欧洲高清一区| 久久精品99国产精品酒店日本| 亚洲欧美激情四射在线日| 亚洲视频网站在线观看| 国产一区二区三区免费视频| xvideos成人免费中文版| 8050国产精品久久久久久| 国产欧美精品一区二区三区介绍| 亚洲国产精品一区二区三区| 精品国产一区二区三区久久久狼| 丰满岳妇乱一区二区三区| 国产视频精品在线| 欧美精品一本久久男人的天堂| 91久久久久久| www.日韩欧美| 久久久久久久久久久久av| 亚洲精品一区二区网址| 久久天堂电影网| 国产一区二区三区精品久久久| 久久久国产一区二区| 国产精品www色诱视频| 国模吧一区二区三区| 日韩69视频在线观看| 亚洲免费视频观看| 精品久久久久久中文字幕| 怡红院精品视频| 亚洲高清av在线| 国产精品xxxxx| 啊v视频在线一区二区三区| 成人在线国产精品| 日本精品久久久久影院| 久久久噜噜噜久噜久久| 欧美日韩视频免费播放| 精品国产一区二区三区在线观看| 成人福利免费观看| 日韩精品视频观看| 欧美第一页在线| 欧美日韩国产麻豆| 国内成人精品视频| 国产精品视频成人| 精品视频在线播放色网色视频| 成人免费淫片aa视频免费|