最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript中延遲加載的7種方法實現(xiàn)

 更新時間:2025年01月13日 11:10:55   作者:baoeni  
在web前端開發(fā)中,性能優(yōu)化一直是一個非常重要的話題,JavaScript中延遲加載的方式有很多種,本文就來介紹了javascript中延遲加載的7種方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下

延遲加載javascript,也就是頁面加載完成之后再加載javascript,也叫on demand(按需)加載,一般有一下幾個方法:

1. DOM

head append script tag

window.onload = function() {
    setTimeout(function(){

        // reference to <head>
        var head = document.getElementsByTagName('head')[0];

        // a new CSS
        var css = document.createElement('link');
        css.type = "text/css";
        css.rel = "stylesheet";
        css.href = "new.css";

        // a new JS
        var js = document.createElement("script");
        js.type = "text/javascript";
        js.src = "new.js";

        // preload JS and CSS
        head.appendChild(css);
        head.appendChild(js);

        // preload image
        new Image().src = "new.png";

    }, 1000);
};

2. document.write

<script language="javascript" type="text/javascript">
        function include(script_filename) {
            document.write('<' + 'script');
            document.write(' language="javascript"');
            document.write(' type="text/javascript"');
            document.write(' src="' + script_filename + '">');
            document.write('</' + 'script' + '>');
        }

        var which_script = '1.js';
        include(which_script);
        </script>

3. Iframe

和第一種類似,但是script tag是放到iframe的document里面。

window.onload = function() {
    setTimeout(function(){

        // create new iframe
        var iframe = document.createElement('iframe');
        iframe.setAttribute("width", "0");
        iframe.setAttribute("height", "0");
        iframe.setAttribute("frameborder", "0");
        iframe.setAttribute("name", "preload");
        iframe.id = "preload";
        iframe.src = "about:blank";
        document.body.appendChild(iframe);

        // gymnastics to get reference to the iframe document
        iframe = document.all ? document.all.preload.contentWindow : window.frames.preload;
        var doc = iframe.document;
        doc.open(); doc.writeln("<html><body></body></html>"); doc.close(); 

        // create CSS
        var css = doc.createElement('link');
        css.type = "text/css";
        css.rel = "stylesheet";
        css.href = "new.css";

        // create JS
        var js = doc.createElement("script");
        js.type = "text/javascript";
        js.src = "new.js";

        // preload CSS and JS
        doc.body.appendChild(css);
        doc.body.appendChild(js);

        // preload IMG
        new Image().src = "new.png";

    }, 1000);
};

4. Iframe static page

直接把需要加載東西放到另一個頁面中

window.onload = function() {
    setTimeout(function(){

        // create a new frame and point to the URL of the static
        // page that has all components to preload
        var iframe = document.createElement('iframe');
        iframe.setAttribute("width", "0");
        iframe.setAttribute("height", "0");
        iframe.setAttribute("frameborder", "0");
        iframe.src = "preloader.html";
        document.body.appendChild(iframe);

    }, 1000);
};

5. Ajax eval

用ajax下載代碼,然后用eval執(zhí)行

6. Ajax Injection

用ajax下載代碼,建立一個空的script tag,設置text屬性為下載的代碼

7. async 屬性(缺點是不能控制加載的順序)

<script src="" async="true"/>

到此這篇關于javascript中延遲加載的7種方法實現(xiàn)的文章就介紹到這了,更多相關javascript 延遲加載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • js用正則表達式篩選年月日的實例方法

    js用正則表達式篩選年月日的實例方法

    在本篇文章里小編給大家整理的是一篇關于js用正則表達式篩選年月日的實例方法,對此有興趣的朋友們可以學習下。
    2021-01-01
  • 老生常談遮罩層 滾動條的問題

    老生常談遮罩層 滾動條的問題

    小編遇到的問題是在彈出層后面的 遮罩層,因為有滾動條,導致滾動條下面不可視區(qū)域沒有遮罩層。下面就為大家介紹一下解決方法
    2016-04-04
  • js實現(xiàn)QQ面板拖拽效果(慕課網DOM事件探秘)(全)

    js實現(xiàn)QQ面板拖拽效果(慕課網DOM事件探秘)(全)

    這篇文章主要為大家詳細介紹了QQ面板拖拽效果,探秘慕課網DOM事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 基于Electron實現(xiàn)桌面應用開發(fā)代碼實例

    基于Electron實現(xiàn)桌面應用開發(fā)代碼實例

    這篇文章主要介紹了基于Electron實現(xiàn)桌面應用開發(fā)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • JavaScript中new操作符使用詳解

    JavaScript中new操作符使用詳解

    new操作符是JavaScript中創(chuàng)建對象實例的重要方式,理解new操作符的工作原理對于掌握JavaScript的面向對象編程至關重要,本文將詳細介紹new操作符的原理及實現(xiàn),感興趣的小伙伴跟著小編一起來看看吧
    2024-11-11
  • JavaScript實現(xiàn)PC端橫向輪播圖

    JavaScript實現(xiàn)PC端橫向輪播圖

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)PC端橫向輪播圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • JavaScript實現(xiàn)樓層效果

    JavaScript實現(xiàn)樓層效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)樓層效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 在knockoutjs 上自己實現(xiàn)的flux(實例講解)

    在knockoutjs 上自己實現(xiàn)的flux(實例講解)

    下面小編就為大家分享一篇在knockoutjs 上自己實現(xiàn)的flux方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • js打造數(shù)組轉json函數(shù)

    js打造數(shù)組轉json函數(shù)

    這里給大家分享的是一段使用js實現(xiàn)數(shù)組轉換成json的函數(shù)代碼,代碼簡潔易懂,并附上了使用方法,小伙伴們拿去試試。
    2015-01-01
  • JS重載實現(xiàn)方法分析

    JS重載實現(xiàn)方法分析

    這篇文章主要介紹了JS重載實現(xiàn)方法,結合實例形式分析了javascript重載的實現(xiàn)與使用方法,需要的朋友可以參考下
    2016-12-12

最新評論

舞阳县| 桓仁| 藁城市| 灵璧县| 个旧市| 林口县| 青铜峡市| 安宁市| 宁蒗| 鹿泉市| 清苑县| 桐乡市| 双流县| 古田县| 萨迦县| 淮北市| 龙川县| 彭阳县| 乌恰县| 大安市| 长沙市| 普陀区| 伊春市| 常宁市| 怀集县| 桑植县| 化德县| 玛纳斯县| 浦县| 龙岩市| 潞西市| 阿拉善右旗| 淮阳县| 丹凤县| 调兵山市| 凯里市| 义马市| 百色市| 乌恰县| 白银市| 清徐县|