jQuery Ajax竞态条件最佳实践
jQuery Ajax Race Condition best practice
在button.click(function(){});
中,我有以下代码:
var userId = $("#user-permission-edit").val();
var peId = $("#user-permission-entity-list").val();
var newParentPEId = $("#new-parent-pe").val();
var newPeName = $("#pe-name-add").val();
$.ajax({
type: "POST",
url: 'AddNewPE',
data: { 'targetUserId': userId, 'targetPEId': peId, 'newPeParentId': newParentPEId, 'newPeName': newPeName},
success: function (data) {
var dataObj = jQuery.parseJSON(data);
console.log(dataObj);
if (dataObj.status == "success") {
alert("Permissions have been updated.");
}
//update user PEs combo
}
});
但是,我担心变量没有及时获得ajax调用的值。
像这样的东西会更安全吗? var userId = $("#user-permission-edit").val();
var peId = $("#user-permission-entity-list").val();
var newParentPEId = $("#new-parent-pe").val();
var newPeName = $("#pe-name-add").val();
$.when(function() {
userId = $("#user-permission-edit").val();
peId = $("#user-permission-entity-list").val();
newParentPEId = $("#new-parent-pe").val();
newPeName = $("#pe-name-add").val();
}).done(function() {
$.ajax({
type: "POST",
url: 'AddNewPE',
data: { 'targetUserId': userId, 'targetPEId': peId, 'newPeParentId': newParentPEId, 'newPeName': newPeName},
success: function (data) {
var dataObj = jQuery.parseJSON(data);
console.log(dataObj);
if (dataObj.status == "success") {
alert("Permissions have been updated.");
}
//update user PEs combo
}
});
});
这有必要吗?
$('....').val()
方法是一个同步调用-在您收到该元素的值之前,您的脚本执行将不会继续超过该行。
相关文章:
- 通过js在新选项卡中有条件地打开url
- 有条件更新d3.js力图中节点的最佳方法
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在执行另一个异步函数之前,只有当条件为true时,才执行某些异步函数的最佳方法
- 当数据超过 5k 时,为动手提供条件格式的最佳方法
- 是否有在 Zurb Foundation 4 中有条件地加载 JS 组件的最佳实践
- 条件变量赋值的最佳方法
- 使用 Javascript 检查 2 个互斥条件的最佳方法
- 组合事件触发器和附加条件的最佳方式
- 有条件地将事件附加到只出现在某些页面上的元素的最佳方法
- 如何写这段代码的最佳方式,这在javascript中有这么多的if条件
- AngularJS在控制器中条件注入服务的最佳实践
- 如何编写使用条件Jquery更改图像源的最佳方法
- OR和and条件没有按预期返回-实现它的最佳方法是什么?
- 根据条件动态设置所选选项的最佳方法
- 防止多个chrome.storage API调用中出现竞争条件的最佳方法
- 对于可能不满足结束条件的while循环,最佳实践是什么
- 如何以最佳方式在jquery中生成条件
- 显示条件确认消息的最佳做法是什么,然后继续
- jQuery Ajax竞态条件最佳实践