2014-03-02 26 views
1

我有一個頁面我想要加載,其中有部分正在進行API調用。在這些完成之前,我不會等待加載該頁面。我希望加載頁面,然後在完成後顯示其他部分。在軌道中異步加載Div

現在,這是我所擁有的,但它並沒有得到我想要的結果,即使這樣,它仍然在等待很多處理,而不是首先加載頁面,即使它看起來應該是這樣。

<script> 
    $(window).load(function(){ 
     $(".my-div").append('<%= my_function %>'); 
    }); 
</script> 
+0

你試過'$(document).ready()'嗎? – methyl

回答

0

資產

不要在您的資產管道

,包括你的佈局或視圖會好起來的代碼使用erb代碼,但如果你包括app/assets/javascripts/any_file.js,它將不起作用

ERB代碼只能由jsviews文件夾中處理(主要是因爲預編譯過程在asset管道)


追加

正如在評論中指出的,你最好等到document加載,這樣的:

$(document).ready(function() { 
    //your code 
}); 

然而,如果你使用turbolinks,你會更好地使用這樣的東西:

var load = function() { 
    //append code here 
}; 

$(document).ready(load); 
$(document).on('page:load', load); 

功能

奇怪的是,你已經忽略你的代碼中最重要的一個方面 - 你如何檢索數據。如果您可以回覆您的異步功能,這將非常有幫助!

+0

我剛剛在視圖中看到了這個javascript,並且通過在我的控制器中調用私有幫助器方法來獲取數據,但這可能不是執行任務的最佳方式。我願意接受任何提示。如果你能指出我在這方面的最佳實踐的正確方向,我會很喜歡它。謝謝。 – user2270029