【问题标题】:(Rails) What is "RJS"?(Rails)什么是“RJS”?
【发布时间】:2010-10-02 08:36:48
【问题描述】:

我在博客文章和教程中看到过“RJS”和“RJS 模板”。我进行了搜索,但我仍然不确定。它是特定于 Rails 的技术,而不是 JSON 或 YAML 之类的标准吗?

我了解它用于“生成 JavaScript”。它会生成需要 Prototype 和 Scriptaculous 库的通用 JS 还是 Rails 特定的 JS?

【问题讨论】:

    标签: ruby-on-rails ajax prototypejs rjs


    【解决方案1】:

    This Railscast 给出了一个很好的例子,它使用 RJS 动态添加和删除表单字段,而无需通过 ajax 调用访问服务器。

    These RJS tips 也可能有帮助。

    【讨论】:

      【解决方案2】:

      RJS 是一个生成 JavaScript 的模板(类似于 html.erb 文件),该 JavaScript 由浏览器在 eval 块中执行以响应 AJAX 请求。它有时用于(错误地?)描述 Rails 提供的 JavaScript、Prototype 和 Scriptaculous Helpers。

      【讨论】:

        【解决方案3】:

        RJS 是一个“ruby-to-js”模板系统,RJS 在 Rails 生态系统中不再广泛使用。现在首选 SJR(服务器生成的 JavaScript 响应)。

        这个 DHH 的帖子让我明白了很多:https://signalvnoise.com/posts/3697-server-generated-javascript-responses

        2021 编辑:现在您应该使用 Hotwire.dev

        【讨论】:

        • 只是为了详细说明“不再广泛使用”:现在是 2020 年,Basecamp(Rails 背后的公司——即使在 2018 年进行了重大重构之后)和 Shopify 仍在使用 RJS。从 Rails 的作者所说,它不会很快消失。所以 RJS 在生产应用中使用它仍然可以(我还在个人项目中使用它)
        • @equivalent8 好的!我知道 Basecamp 正在研究“前端的新魔法”,它应该可以在 2020 年底准备好(参见推特上的 dhh),我等不及他们向我们展示了
        • Hotwire 发布了“新魔法”hotwire.dev,“Hotwire 是一种构建现代 Web 应用程序的替代方法,无需使用大量 JavaScript,而是通过网络发送 HTML 而不是 JSON。”跨度>
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        • 2012-04-26
        • 2011-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多