ajax同步獲取數據UI堵塞改異步方法

剛開始寫了同步獲取數據的方式,後來發現若是數據量大,前端界面會卡住,直到返回數據纔會作下一步操做。javascript

function getcode(code) { 
        var url = "http://......";
        $.ajaxSettings.async = false;//設置爲同步
        $.get(url + code, function(data, status) {
            dd = data;
        });
        return dd;
}

因而將請求改成異步前端

function getCode() { 
        var defer = $.Deferred();//jquery的一個方法
        $.ajax({
            // url: 'http://.....',
            success: function(data) {
                defer.resolve(data)
            }
        });
        return defer.promise();//返回的是promise對象
    }


getCode().then(//經過promise對象的.then回調函數拿到數據
        function(code) {
            console.log(code);
        //此處能夠直接輸出數據,或者將須要使用該數據的方法寫在函數內,但不能將此數據返回給調用者!!!!
        });

這樣就不會致使頁面在加載數據的時候堵塞了。java

相關文章
相關標籤/搜索