2011-08-03 18 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

相關問題