2011-08-03 17 views
1

我通过ajax设置了分页+参数,并且正常工作。rails通过ajax运行第一个查询(在视图加载后)

但是,第一次加载页面时,需要一段时间。是否有可能首先加载视图,然后通过ajax加载内容(就像点击页面2将对ajax分页一样)?

编辑/

是否真的愚蠢到使用条件的参数?就像在我的控制器中查询if params[:load] == "ajax"以及使用此数据的视图的各个部分一样。在jquery中,当文档准备就绪(视图加载)时,使用get调用参数:$.getScript(window.location.pathname + "?load=ajax"); ???

回答

2

我已经做了很多。首先加载整个视图,其中包含一些基本布局,然后使用ajax加载实际的重要内容。所以,在我的控制器:

class PriceController < ApplicationController 

    def price 
    # do something in order to render the page price.html 
    end 

    def price_f 
    # render the partial which contains heavy sorting of datas 
    render :partial => "price_f" 
    end 

end 

jQuery中

$(document).ready(function(){ 
    $.ajax({ 
    url : "/price_f.html?page=1" 
    success: function(data){ 
     $("#price_container").html(data); 
    } 
    }); 
}) 
0

假设你正在使用jQuery,你应该能够在文档准备好之后做一些简单的事情。真的,你正在做的是告诉你要第1页,而不是第2页你分页网址等

$(document).ready(function(){ 
    $.get({ 
    url: "/url/for/your/page/data" 
    }); 
}); 

为了摆脱目前的初始页面加载的(我会看到你的特定代码告诉你到底该怎么删除/修改):

  1. 消除任何代码是在您的控制器,做查询,加载数据等
  2. 删除然后与使用该初始数据的视图的部分,也许只是在那里贴一个加载gif,直到它被你的ajax数据取代。
  3. 触发ajax请求 - 页面将在等待控制器排序和传递数据时加载。
+0

但我怎么得到它停止加载最初我的数据并加载看法?它需要一段时间的原因是因为我们在后端进行大量数据排序。但是,我只想加载视图,然后在加载初始数据时显示进度条类型动画。 – stewart715

+0

查看我的更新回答。 –

+0

现在,如果我将其更改为'def data'并载入索引并将其指向'data',那么我将所有查询/加载完成在'def index'中? – stewart715

相关问题