江苏运营网站建设业务,北京网站设计公司sx成都柚米科技15,网站做多长时间才有流量,昆明制作企业网站的公司问题描述#xff1a;
在做录入文章到时候#xff0c;由于外部图片权限问题#xff0c;在app展示的时候无法访问#xff0c;所以需要在文章提交的时候做一下图片处理#xff0c;这里使用ajax同步上传到服务器 返回url替换掉 原来的img的src#xff1b;问题出现在点提交的…问题描述
在做录入文章到时候由于外部图片权限问题在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 由同步改成异步即可