【问题标题】:Ruby on Rails ajax - dynamically loading all pagesRuby on Rails ajax - 动态加载所有页面
【发布时间】:2010-02-04 00:43:32
【问题描述】:

我有一个 Flash 媒体播放器(类似于 lala.com),它需要在人们点击时继续流式传输。我不想使用 iframe。

所以,无论人们点击什么链接,我都需要使用 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 做些什么吗?

【问题讨论】:

    标签: ruby-on-rails ajax


    【解决方案1】:

    我找到了一种方法来做到这一点。您可以通过 jquery load 方法加载您想要的任何页面。

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

    然后它们将被放置在具有#result id 的 div 中。 您还可以使用#container 指定页面片段,以便仅加载所需的部分。 这允许您的所有控制器保持机智等而无需额外的 js。

    【讨论】:

    • 对于那些使用 Prototype 的尝试:Ajax.Updater('result', '', { method: 'get' });
    【解决方案2】:

    这确实会影响您在搜索引擎中的知名度。我还认为这意味着您需要考虑控制器的流程。控制器不会响应代表页面的视图,而是响应注入主页的 HTML/JSON/etc 的 sn-ps。您的主页充当协调器,加载和加载内容。在每个视图文件夹中都有 js.erb 文件非常好……因为它们应该返回特定于单个控制器的内容。

    【讨论】:

    • 是的,但是如果页面以非 js 浏览器(例如 google 的蜘蛛)的正常 url 响应,那就没问题了。我想我找到了一种方法,但可能会导致加载缓慢。谢谢!
    猜你喜欢
    • 2017-12-13
    • 2013-03-31
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    相关资源
    最近更新 更多