Javascript 如何设计具有多个ajax调用的页面?

Javascript 如何设计具有多个ajax调用的页面?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想问一下如何设计一个有很多ajax调用的页面。例如,一个页面中的10个ajax调用具有CRUD函数 目前我有这种自定义设置: $('[data-ajaxform]').submit(function(event) { event.preventDefault(); event.stopImmediatePropagation(); if(!$(this).parsley().validate()){ return false; } var $this = $(this),

我想问一下如何设计一个有很多ajax调用的页面。例如,一个页面中的10个ajax调用具有CRUD函数

目前我有这种自定义设置:

$('[data-ajaxform]').submit(function(event) {
event.preventDefault();
event.stopImmediatePropagation();

if(!$(this).parsley().validate()){
    return false;
}

var $this = $(this),
    url = $this.attr('action'),
    method = $this.attr('method'),
    container = $this.data('container');

if(typeof container !== undefined && container !== false)
    container = '.panel-body';

$.ajax({
    url: url,
    type: method,
    dataType: 'json',
    data: $this.serialize(),
    beforeSend: function(){
        $this.find(container).append('<div class="indicator show"><span class="spinner spinner1"></span></div>')
    },
})
.done(function(data) {
    setTimeout(function() {
        $this.find(container).prepend(data.responseText);
    }, 1000);
    $this.trigger('reset');
    hasValue($this.data('ajaxform'))
})
.fail(function(data) {
    setTimeout(function() {
        $this.find(container).prepend(data.responseText);
    }, 1000);
})
.always(function(data) {
    setTimeout(function() {
        $this.find('.indicator').remove();
    }, 1000);
});

return false;
});
$(“[data ajaxform]”)。提交(函数(事件){
event.preventDefault();
事件。stopImmediatePropagation();
如果(!$(this.parsley().validate()){
返回false;
}
变量$this=$(this),
url=$this.attr('action'),
method=$this.attr('method'),
container=$this.data('container');
if(容器类型!==未定义&&container!==false)
容器='.panel body';
$.ajax({
url:url,
类型:方法,
数据类型:“json”,
数据:$this.serialize(),
beforeSend:function(){
$this.find(container.append)(“”)
},
})
.完成(功能(数据){
setTimeout(函数(){
$this.find(container.prepend(data.responseText);
}, 1000);
$this.trigger('reset');
hasValue($this.data('ajaxform'))
})
.失败(功能(数据){
setTimeout(函数(){
$this.find(container.prepend(data.responseText);
}, 1000);
})
.始终(功能(数据){
setTimeout(函数(){
$this.find('.indicator').remove();
}, 1000);
});
返回false;
});

你们能给我一些建议,在做这件事时应该实施什么好的实践,或者一些可以帮助我的文章吗?非常感谢

由于没有提供太多细节,我可以在回答中更笼统一些。以前在处理类似于您的问题时,我将jQuery的
.ajax()
封装到一个全局函数中,该函数接受自定义参数和/或回调函数,从而改变发送的消息和结果行为

function myajax(data, callback /*or wrap all stuff in an object literal*/) {
  //any preprocessing or conditionals
  //for example put your setting the url, method, container here
  $.ajax({
    url: url,
    type: type,
    data: data,
    success: callback
  });
}

简言之,避免在整个代码中使用
.ajax()
样板文件,只使用一次,并使其具有通用性和灵活性。

有关异步请求的文章可以在Google上找到。从我所看到的情况来看,您使用jQuery,这几乎为您完成了所有工作。设计整个CRUD应用程序在很大程度上依赖于它的确切行为,而你没有说明。这也取决于后端的设计,你可能没有考虑过。