加载其他数据后如何加载图形

时间:2012-06-22 09:11:34

标签: jquery html ruby-on-rails-3 html5 jquery-ui

我正在使用rails 3.2.1

我的页面分为5个部分

第1部分标题
第2部分区域
第3部分图部分
表格格式的第4部分数据
第5部分页脚

现在我的问题是图表需要花费太多时间才能上传 由于这个页面需要花费太多时间来加载。

请告诉我任何方法,以便我的图表加载到最后,但会显示其他数据。

2 个答案:

答案 0 :(得分:1)

如果问题是图形数据下载时间太长,那么您需要使用AJAX调用单独下载它,而不是直接将其包含在页面中。类似的东西:

$.getJSON("/url/to/your/data", function(data){$.jqplot('chart1', data)});

...通过使/url/to/your/data提供您当前嵌入页面的相同图表数据,您必须在服务器上支持。该代码将开始下载,然后将图形数据与页面的其余部分分开呈现。

如果这导致DOM的问题还没有完全准备好(不确定为什么会这样),那么请将您的调用包装起来,以便只有在完全呈现文档时才会发生:

$(function(){
    $.getJSON("/url/to/your/data", function(data){$.jqplot('chart1', data)});
});

答案 1 :(得分:0)

你可以做的第一件事是在条件为真时调用绘制图形的函数。例如:

(function isMyDataLoaded(){

    //if the table is rendered
    if($('#TableData').length==0){
         setTimeout(isMyDataLoaded,100);    
    }else{
          DrawGraphFunction();    
    }
 })();

注意:我不知道你的逻辑,所以你可以使用其他条件。