用于数据库的Jquery ajax同步调用
jquery ajax call synchronous for databases
我正在使用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类管理业务层中的事务逻辑。
在此之后,以同步还是异步的方式调用服务/方法就不重要了。
相关文章:
- 同步调用,直到用户通过angular验证为访问者
- 如何使用javascript中的生成器模拟同步调用
- 通过同步调用检查用户是否存在
- Node.js同步调用passport本地注册
- 在同步调用之前先调用函数
- 对async函数进行同步调用
- 节点.js与 ASYC 瀑布模块同步调用
- 如何在节点/环回中同步调用 model.find 方法
- 异步进程上的同步调用
- 从 javascript 同步调用 Struts 2 操作
- 环回:对环回 API 进行同步调用
- JavaScript 同步调用
- Javascript方法同步调用,没有回调和$.ajax
- Javascript 同步调用与更新
- EXT-js如何同步调用Store
- AngularJs:$http同步调用
- phonecap对文件系统的同步调用
- javascript/nodejs:在大的、分块的数据集上同步调用一组类似的异步函数会导致内存泄漏
- Meteor同步调用函数
- 在nodejs中,是否有更好的设计模式来同步调用异步函数