用于数据库的Jquery ajax同步调用

jquery ajax call synchronous for databases

本文关键字:同步 调用 ajax Jquery 数据库 用于      更新时间:2023-09-26

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

您应该通过仅发送一个ajax调用来完成所需的所有操作,并使该ajax调用async为false。

在这种情况下,最好使用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将不会旋转。

你绝对需要在业务层或后端数据层使用事务。

我通常更喜欢执行简短的任务(每个实体都有自己的存储库),并在数据层中尽可能少地保持连接打开,然后使用-例如- TransactionScope类管理业务层中的事务逻辑。

在此之后,以同步还是异步的方式调用服务/方法就不重要了。