我正在使用ASP创建一个网站。具有大型客户端的NET,负责处理该站点的许多事件。在客户端通过AJAX我更新,删除并添加到数据库(按此顺序!)。 我的问题是,因为任务的顺序非常重要:首先更新数据库,第二次从数据库中删除,第三次 - 添加到数据库: 我应该使AJAX调用同步吗?通过改变" async"假的#34;? 或者我应该默认将其保留为真?我应该采取哪种方法?
答案 0 :(得分:0)
你应该通过只为你需要的所有操作发送一个ajax调用来做这个,并使ajax调用async false。
答案 1 :(得分:0)
在这种情况下,最好使用async: true
并将您的请求链接起来,以便它们一个接一个地发生。
$.ajax({
type:'put',
url: '/model/7256185',
data: {name: 'Lucy'}
}).then(function () {
return $.ajax({
type:'delete',
url: '/model/7256186'
});
}).then(function () {
return $.post('/model', {name: 'bob'});
}).then(function (result) {
console.log("All Done!");
console.log(result);
}, function () {
console.log('An error has occurred!');
console.log(arguments);
});
这可以确保请求按顺序发生,并且它不会导致您的页面在请求期间出现故障(这是同步请求会发生的情况。)
如果您愿意,它还允许您使用加载gif。对于同步请求,加载GIF不会旋转。
答案 2 :(得分:0)
您肯定需要在后端的业务或数据层使用事务。
我通常更喜欢执行简短任务(每个实体都有自己的存储库)并在数据层中尽可能少地保持连接打开,然后使用 - 例如 - {{3来管理业务层中的事务逻辑}。class。
在此之后,以同步或异步方式调用服务/方法并不重要。