1. 程式人生 > >js 非同步載入和json格式

js 非同步載入和json格式

1:json解析

 <!--json-->
    var json = {
        name: "json",
        age: 123
    }
    var str = JSON.stringify(json);
    //"{"name":"json","age":123}"
    var parse = JSON.parse(str);
    // {name: "json", age: 123}

2:js非同步載入

function test() {
    console.log("dddd");

}

var tools = {
    test : function () {
    console.log("dddd");
    }
}
    /*重排(reflow):dom節點的刪除,新增 以及dom節點寬高變化位置變化 */

    /*js中非同步載入:又稱非阻塞載入,瀏覽器下載js的同時,會繼續進行後續頁面的處理
     *
     * js中同步載入:也叫阻塞載入,會阻止瀏覽器的後續處理,停止後續的解析,只有當前載入完成之後,才能進行下一步操作
     * */

    /*非同步載入defer,只有IE瀏覽器才有,只有dom解析完成才能執行,也可以寫在程式碼裡面*/
    //<script type="text/javascript" src="/js/document.js" defer>
    <!--async非同步載入,下載完就執行,不能寫在script標籤裡面-->
    /*<script type="text/javascript" src="/js/document.js" async="async">*/

    function loadScript(url, callback) {
        var script = document.createElement('script');
        script.type = "text/javascript";

        if (script.readyState) {
            /*IE*/
            script.onreadystatechange = function () {
                if (script.readyState == "complete" || script.readyState == "loaded") {
                    callback();
                    //tools[callback]();
                }

            }
        } else {
            script.onload = function () {
                callback();
                // //tools[callback]();
            }

        }

        script.src = url;
        document.head.appendChild(script);
    }

    loadScript('dome.js',function () {
     test();

     })
    /*
     loadScript('dome.js',test)
     */