就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果你觉得这个问题可以改进并可能重新打开,visit the help center 寻求指导。




8年前关闭。




我们正在开发一个相当大而广泛的应用程序。
该网站将有许多不同的部分,具有一些非常不同的用户界面要求和行为。

展望 future ,Rails 4 将 Assets 管道分离到一个单独的 gem 中,以便我们可以选择是否包含它。同样的事情也可能发生在 turbolinks 上。

这些天我一直在问自己但找不到答案的问题是:我应该在我们的项目中使用这些库吗?

我认为的主要问题是多合一文件策略可能行不通,我们必须在应用程序的不同部分使用文件包。 turbolinks 将如何对此使用react,因为它必须假设所有 js/css 都已加载?这种配置的优势是否克服了管道和 turbolinks 隐含的代码复杂性?

我不期待是/否的答案,只是对此事的一些看法。

最佳答案

两者都是有效的工具,不一定会相互抵消。

Turbolinks:使您能够仅加载页面的正文,从而使其作为 AJAX 请求工作(这种行为的一个示例是 Facebook 的行为)。

优点:

  • 跳过完全呈现新页面的浏览器任务,从而消除浏览器无响应的“空白页面”时间。
  • 与上一篇相关:如果您的行为可能因加载新页面而受到影响,例如播放歌曲,turbolinks 不会影响它(请参阅接下来的 soundcloud)。
  • 不重新加载文档头,因此不会加载相同的标签/内容两次(如果相同)。
  • 使您仍然可以在服务器端缓存 View 内容。

  • 缺点:
  • 如果标题标签确实需要更新(新的 js 文件、新的 css 文件、元标签更新...),则拖动
  • 如果你想使用客户端 View 渲染,它只是不是它的工具。
  • 禁用该行为的默认行为很痛苦(使用 css 类禁用部分内的 anchor 标记?这很糟糕)。

  • 这实际上是一个问题,你的应用程序的架构是什么,它的目标是什么。

    关于 Assets 流水线,我的结果喜忧参半,尽管我会说它的优点多于缺点。总的来说,预处理工具提高了跨浏览器的开发效率,但在生产中不要依赖它。但是在 Assets 流水线的情况下,它也必须满足您的需求。你可以预处理 SASS、Coffeescript,你有很棒的库,比如 compass 或 bourbon,但这也会增加你的性能开销。因此,对其进行基准测试,看看这些是否适合您。

    关于ruby-on-rails - 对于大型应用程序,Rails 4 中的 Asset-Pipeline/Turbolinks 的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14231616/

    10-13 05:27