javascript - Ajax异步: false freezes web page during loading in slow network

标签 javascript jquery ajax asynchronous synchronization

我对网页使用 jquery AJAX 并使用 async : false 选项,如下所示。我客户的网络速度很慢。当我尝试从服务器加载网页时,网页速度很慢并且所有控件都被卡住。那“async:false”有问题吗?这是我的代码

function ajaxRequestWithNoArguments(url) {
    return $.ajax({
        url: urlForPhp + '/' + url,
        data: '',
        dataType: 'JSON',
        async: false,
        method: 'POST'
    });
}

最佳答案

When I try to load the web page from the server web page is slow and all the controls are freeze. Is that "async:false" matter?

是的,这正是您不应该使用 async:false 的原因,它用于非常特殊的情况,听起来您不需要它。使请求同步意味着浏览器将暂停程序执行(也卡住所有 UI),直到请求完成、数据加载回并处理。在大多数情况下你不想要它,这就是为什么你需要使用默认的 async: true。

function ajaxRequestWithNoArguments(url) {
    return $.ajax({
        url: urlForPhp + '/' + url,
        data: '',
        dataType: 'JSON',
        method: 'POST'
    });
}

返回 Promise 对象是处理异步函数的便捷方法。在这种情况下,您将使用 ajaxRequestWithNoArguments,如下所示:

ajaxRequestWithNoArguments('/some/url').then(function(response) {
    console.log('Data loaded', response);
});

关于javascript - Ajax异步: false freezes web page during loading in slow network,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32578271/

相关文章:

javascript - 是否可以在 Ajax 语句中使用字符串来引用 json 对象?

javascript - 如何使用 AngularJS 获得 promise 结果

javascript - angular 5, reactive form-重置所需的表单控件不会重置输入下所需的错误

javascript - 完整的 bootstrap markdown 高度

jQuery 隐藏文本,悬停时显示?

javascript - 循环内未知数量的 Ajax 请求

javascript - 给出一个调用函数的对象

javascript - 加载页面时如何伸展树(Splay Tree)面板 - EXTJS 4

javascript - 如何在 Javascript 中识别节点列表中的标签?

javascript - Web 应用程序的文本到语音转换