2010-02-04 44 views
0

我有一個Flash媒體播放器(類似於lala.com),需要在人們點擊時繼續流式傳輸。我不想使用iframe。Ruby on Rails ajax - 動態加載所有頁面

所以,我需要用ajax動態加載所有的網站頁面,不管人們點擊什麼鏈接。

我已經有了與Rails和JQuery一起工作的單頁面。有了這個方法,我必須爲任何被調用的控制器放置一個file.js.erb文件。例如:example.com/home被調用,我必須在視圖主目錄中有一個index.js.erb才能對此做出響應。

我用: http://railscasts.com/episodes/174-pagination-with-ajax

得到這一個頁面上工作,但它不會幹的所有文件複製到.js.erb每個控制器。

有什麼我可以用主application_controller或甚至與routes.rb做?

回答

1

我找到了一種方法來做到這一點。你可以通過jquery加載方法加載你想要的任何頁面。

$('#result').load('ajax/test.html #container');

然後,他們將被放置在與#result ID股利。 您也可以使用#container指定一個頁面片段,以便只加載所需的部分。 這可以讓你所有的控制器保持機智等沒有額外的JS。

+0

對於那些使用Prototype的人來說,試試:Ajax.Updater('result','<%= latest_jobs_path%>',{method:'get'}); – Kris 2011-01-06 14:45:07

0

這實際上會影響您對搜索引擎的可見度。我也認爲這意味着你需要考慮控制器的流程。控制器不會以代表頁面的視圖響應控制器,而會以HTML/JSON /等片段的形式響應,並將其注入主頁。您的主頁充當協調員,加載和導出內容。在每個視圖文件夾中都有js.erb文件,因爲它們應該返回特定於單個控制器的內容。

+0

是的,但如果頁面響應非js瀏覽器(例如谷歌蜘蛛)的正常URL,那麼它會沒事的。我想我找到了一種方法,但可能會導致加載速度緩慢。謝謝! – djburdick 2010-02-04 01:50:34