jquery ajax调用数据库同步

时间:2015-09-28 17:49:10

标签: javascript jquery asp.net ajax

我正在使用ASP创建一个网站。具有大型客户端的NET,负责处理该站点的许多事件。在客户端通过AJAX我更新,删除并添加到数据库(按此顺序!)。 我的问题是,因为任务的顺序非常重要:首先更新数据库,第二次从数据库中删除,第三次 - 添加到数据库: 我应该使AJAX调用同步吗?通过改变" async"假的#34;? 或者我应该默认将其保留为真?我应该采取哪种方法?

3 个答案:

答案 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。

在此之后,以同步或异步方式调用服务/方法并不重要。