jquery - 如果我删除 async:false,我的 ajax 调用将不再有效。但我不想使用 async:false
问题描述
如果我删除 async:false,我的 ajax 调用将不再有效,您能否建议更好的方法而不使用 asynch:false。
var json = JSON.stringify(mark.toJSON());
var src = "";
if (json.length > 1024) {
$.ajax(Constants.Url_Base + 'Annotations/CreateMessage', {
data: { jsAnnotation: json },
type: 'post',
async: false,//added so that events executes in proper order
success: function (resp) {
if (resp.status !== 'ok') {
ErrorHandler.addErrors(resp.message, css.warningErrorClass, css.warningErrorClassTag, css.inputErrorClass, '');
}
else {
var messageId = encodeURIComponent(resp.result);
json = messageId;
}
}
});
}
src = Constants.Url_Base + "Annotations/GetAnnotationPng?jsAnnotation=" + encodeURIComponent(json);
var pdto = this.getPDTO();
var dpi = Math.max(pdto.get('RezX'), pdto.get('RezY'));
if (dpi > 0) {
src += "&dpi=" + dpi;
}
return src;
}```
解决方案
可能是这个,它不工作的原因是它src
早早返回,所以.done()
会在之后发生ajax
。
var json = JSON.stringify(mark.toJSON());
var src = "";
if (json.length > 1024) {
$.ajax(Constants.Url_Base + 'Annotations/CreateMessage', {
data: { jsAnnotation: json },
type: 'post',
async: false,//added so that events executes in proper order
success: function (resp) {
if (resp.status !== 'ok') {
ErrorHandler.addErrors(resp.message, css.warningErrorClass, css.warningErrorClassTag, css.inputErrorClass, '');
}
else {
var messageId = encodeURIComponent(resp.result);
json = messageId;
}
}
}).done(function(){
src = Constants.Url_Base + "Annotations/GetAnnotationPng?jsAnnotation=" + encodeURIComponent(json);
var pdto = this.getPDTO();
var dpi = Math.max(pdto.get('RezX'), pdto.get('RezY'));
if (dpi > 0) {
src += "&dpi=" + dpi;
}
return src;
});
}
}
推荐阅读
- r - can't run r script from pycharm
- ios - `-fobjc-arc-exceptions` compiler flag does not have an effect in Xcode for iOS app
- c# - Add tranparency to huge image C#
- thymeleaf - 百里香叶显示不正确
- mongodb - findAndModify 和 findOneAndUpdate 有什么区别?
- node.js - 使用 Kubernetes 集群在 nGinx 服务器中出现错误的网关 502 错误
- javascript - 将 vue.js 中的结果附加到基于语义 UI 的模板
- css - WorldPay 自定义 css 文件支持的 CSS 属性
- java - VaadinSession 在销毁期间不拥有锁导致 AssertionError
- u-boot - 使用 buildroot 自定义 u-boot 环境变量