本文介绍: Ajax同步调用影响加载动画展示问题

问题描述:

在做录入文章到时候,由于外部图片权限问题,在app展示的时候无法访问,所以需要在文章提交的时候做一下图片处理,这里使用ajax同步上传到服务器 返回url替换掉 原来的img的src;问题出现在点提交的时候页面卡死 遮罩层和加载图显示不出来;

解决方案:

浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。当我们执行异步ajax的时候没有问题,但当设置为同步请求时,其他的动作(ajax函数后面的代码,还有渲染线程)都会停止下来。即使我的DOM操作语句是在发起请求的前一句,这个同步请求也会“迅速”将UI线程阻塞,不给它执行的时间。这就是代码失效的原因。

修改前代码示例:

$.ajax({
    url: ctx + '/document/remote2Cos',
    async: false,
    type: 'post',
    dataType: 'json',
    data: {"fileUrl":src},
    success: function (data) {
        obj.attr("src",data.url);
    }
})

修改后代码示例:

$.ajax({
    url: ctx + '/document/remote2Cos',
    type: 'post',
    dataType: 'json',
    data: {"fileUrl":src},
    success: function (data) {
        obj.attr("src",data.url);
    }
})

    总结:将 ajax 由同步改成异步即可

原文地址:https://blog.csdn.net/m0_52191385/article/details/135392250

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_51804.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注