Javascript 如何设计具有多个ajax调用的页面?
我想问一下如何设计一个有很多ajax调用的页面。例如,一个页面中的10个ajax调用具有CRUD函数 目前我有这种自定义设置: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),
$('[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应用程序在很大程度上依赖于它的确切行为,而你没有说明。这也取决于后端的设计,你可能没有考虑过。