jQuery如何通过ajax加载多个页面部件
我的页面显示了不同类别的多个表,每个表都是通过ajax加载的 类别的数量可能会有所不同,但我知道在进行ajax调用之前会有多少类别。我同时向他们展示如下:jQuery如何通过ajax加载多个页面部件,jquery,ajax,loading,Jquery,Ajax,Loading,我的页面显示了不同类别的多个表,每个表都是通过ajax加载的 类别的数量可能会有所不同,但我知道在进行ajax调用之前会有多少类别。我同时向他们展示如下: $(function(){ var categories = 3; // this is calculated dynamically var categoriesLoaded = 0; $('#categoryA').load('/getCategoryA', function(){categoriesLoaded
$(function(){
var categories = 3; // this is calculated dynamically
var categoriesLoaded = 0;
$('#categoryA').load('/getCategoryA', function(){categoriesLoaded++;checkLoadProgress();});
$('#categoryB').load('/getCategoryB', function(){categoriesLoaded++;checkLoadProgress();});
$('#categoryC').load('/getCategoryC', function(){categoriesLoaded++;checkLoadProgress();});
function checkLoadProgress(){
if(categoriesLoaded == categories){
$('.spinner').hide();
$('.categories').show();
}
}
});
这是可行的,但我想从你那里知道,这是否是一个体面的方式来实现这一点
我的目标是有一个加载条(也许我已经有足够的信息了),但我真的不喜欢用这种重复功能检查状态的方式。欢迎提供任何提示我建议您进行一些更改(但通常我认为您的代码不错):
$(函数(){
var categories=3;//这是动态计算的
对于(var categoriesload=0;categoriesload
但是!只有在加载了所有类别且未返回任何内容时,才使用checkLoadProgress(),这就是为什么您似乎可以编写:
$(function(){
var categories = 3; // this is calculated dynamically
for(var categoriesLoaded = 0; categoriesLoaded < categories; categoriesLoaded++){
var charCode = String.charCodeAt('A') + categoriesLoaded;
var symbol = String.fromCharCode(charCode);
$('#category'+ symbol).load('/getCategory' + symbol);
//function() was deleted
}
$('.spinner').hide();
$('.categories').show();
});
$(函数(){
var categories=3;//这是动态计算的
对于(var categoriesload=0;categoriesload
为什么要使用Ajax?服务器的用途是什么?有没有想过让一个类别数组在其中循环?@JustinGingyMcDonald我使用ajax,因为加载表可能需要相当长的时间,用户可以在不加载表的情况下执行其他操作
$(function(){
var categories = 3; // this is calculated dynamically
for(var categoriesLoaded = 0; categoriesLoaded < categories; categoriesLoaded++){
var charCode = String.charCodeAt('A') + categoriesLoaded;
var symbol = String.fromCharCode(charCode);
$('#category'+ symbol).load('/getCategory' + symbol);
//function() was deleted
}
$('.spinner').hide();
$('.categories').show();
});