2012-12-03 42 views
2

我有一个ajax请求返回约1300个json对象。 在这个对象中我填充了一些ArrayProxies和视图。 每个ArrayProxy因此视图包含约15个对象和关于这些对象的详细信息。使用AJAX加载大型数据数组加载条

由于这里和那里的一些逻辑,我需要大约5秒钟,直到所有的数据加载。

现在我需要知道我可以如何做一个像加载栏或至少呈现每个视图。

我的AJAX加载代码很简单:

$.getJSON('http://json.url, function(data) { 
    $.each(data, function(i, obj) { 
     var obj = App.ObjModel.create(obj); 
     if (obj.get('isCalculable')) { 
      App.ObjController.addObj(obj); 
     } 
    }); 
}); 

但我怎么能告诉渲染视图的应用程序后,某些情况下返回true?

THX的任何帮助, 迪马

回答

0

你可以使用一个加载图像的股利或里面的东西和请求的开始和结束时切换其显示。

Ajax请求开始:

document.getElementById("LoadingImage").style.display="block"; 

它完成后:

document.getElementById("LoadingImage").style.display="none"; 
4

让子玉做的工作是加载数据时要弄清楚。检查数据是否加载,如果不是,显示动画gif或其他东西。这会告诉用户数据尚未准备好。

您可以在视图像这样的东西做到这一点:

{{#if controller.isLoaded}} 
    Display controller.content in loop or something 
{{else}} 
    <img src="/spinner.gif"> Loading data... 
{{/if}} 

此代码示例从官方网站灰烬适应。你可以在最后找到它here