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

相关文章
相关标签/搜索