我正在尝试通过使用单独的“.js”文件并尝试仅使用一次声明多个已使用的函数来提高页面效率。所以我必须以某种方式声明它们,它们可以用于不同的情况。例如传递不同的数据。
这是我在“functions.js”文件中的Ajax函数:
function CallAjax(type, url, data, div){
$.ajax({
type: type,
url: url,
data: data,
success: function (data) {
console.log(data);
$(div).html(data);
}
});
}
这是我的PHP文件中的代码,我使用此函数并传递参数:
CallAjax('POST', 'about.php', '{ aufid : id }', '#con2');
我的问题是“数据”部分。我怎么声明呢?我这样做的方式不起作用。
当我需要不同的数据时,我不想每次都使用新的Ajax函数......我试图尽可能少地触发函数。
如果您有任何提示可以通过尝试使用更少的代码来提高页面效率,那么如果您提及它们也会很棒!谢谢!
答案 0 :(得分:3)
var obj = {
aufid: 1
};
CallAjax('POST', 'about.php', obj, '#con2');
答案 1 :(得分:1)
我建议使用js回调:
function CallAjax(type, url, data, div){
$.ajax({
type: type,
url: url,
data: data,
success: function (data) {
callback(data);
}
});
}
var obj = {
id:1
};
CallAjax('POST', 'about.php', obj, function(response){
$(div).html(response); //or other
});
或promise中更优雅的方式:
function CallAjax(type, url, data){
return $.ajax({
type: type,
url: url,
data: data,
});
}
var obj = { id: 1 };
var jxhr = CallAjax('POST', 'about.php', obj);
jxhr.done(function(response){
//successful callback goes here...
}).fail(function(response){
//failure callback goes here...
}).always(function(response){
//always callback goes here...
});
:)