Ajax修改全局變量問題解決方法(Zepto版)


前兩天項目遇到一個用ajax修改全局變量的案例,一開始無法給這個全局變量修改賦值,在網上查了一下,解決如下:

修改前:

 var word=1;

    $.ajax({
        url:"myJSON.json",
        type:"get",
        dataType:"json",
        success:function(data){
            word=2;
        }
    });

    alert(word);

結果:彈出1;

原因:js是單線程的語言,而ajax是異步加載的,可以這么理解,上面的代碼中,先運行完了alert,才運行ajax里的賦值,因此彈出的word的值是1

修改后:

    var word=1;

    $.ajax({
        async:false,
        url:"myJSON.json",
        type:"get",
        dataType:"json",
        success:function(data){
            word=2;
        }
    });

    alert(word);

結果:彈出2

原因:代碼中增加async:false,將ajax修改為同步加載,那么整個代碼就按照先后順序加載完成,因此彈出的word的值是2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM