Javascript 不为客户端MV*框架提供js回退

Javascript 不为客户端MV*框架提供js回退,javascript,ruby-on-rails,ember.js,client-side,fallback,Javascript,Ruby On Rails,Ember.js,Client Side,Fallback,我最近刚刚被介绍到MV*框架,并借此机会试用了他们网站上的应用程序教程 我曾考虑在我即将推出的一个项目中使用Ember(一个CRUD应用程序,在某些功能上类似于Twitter),但我仍然有点困惑,在我做出最终决定之前,如果有人能够澄清以下问题,我会非常喜欢它: 对于中等大小的多页面CRUD应用程序,使用像Ember这样的高级框架是一个好主意吗?与使用jQuery的DOM操作和AJAX功能构建的交互层相比,它是否会提高开发时间和维护?或者,只有在开发复杂的单页应用程序(例如:)时,才使用Ember

我最近刚刚被介绍到MV*框架,并借此机会试用了他们网站上的应用程序教程

我曾考虑在我即将推出的一个项目中使用Ember(一个CRUD应用程序,在某些功能上类似于Twitter),但我仍然有点困惑,在我做出最终决定之前,如果有人能够澄清以下问题,我会非常喜欢它:

  • 对于中等大小的多页面CRUD应用程序,使用像Ember这样的高级框架是一个好主意吗?与使用jQuery的DOM操作和AJAX功能构建的交互层相比,它是否会提高开发时间和维护?或者,只有在开发复杂的单页应用程序(例如:)时,才使用Ember(以及类似的工具)好吗

  • 考虑到该应用程序将使用Rails开发,并且假设将使用Ember,是否有可能为禁用JavaScript的浏览器和/或搜索引擎爬虫提供具有基本功能的回退?它需要代码复制还是其他肮脏的手段?你知道有什么技术可以用来实现它吗

  • 是否有可能使网站适应移动浏览(仅使用CSS)并获得有效结果,或者在手机上运行Ember所带来的开销是否会使设备难以以保持响应的方式呈现网站


  • 我们现在正处于一个相当大的烬项目的中间,所以这里是我对你的问题的看法。
  • 我们发现Ember在为我们的单页应用程序创建富UI方面非常高效,但我不知道如果您创建的应用程序设计为传统的多页(查看页面、提交表单等)布局,它会有多大帮助

  • 我认为这是最关键的——Ember完全基于JS,所以如果你需要支持没有JS的浏览器,你基本上必须编写一个并行应用程序。如果这对你的应用程序来说是一个硬性要求,我认为Ember(或任何MV*JS框架)是不可能的

  • 我们在移动设备上几乎没有性能问题——我们的网站反应灵敏,从黑莓手机到最新的桌面Chrome浏览器,性能都很好


  • @斯科特·兰金(Scott Rankin)已经解决了使用纯余烬方法的大多数问题。我将添加一个快速的方法来做出这个决定

    如果应用程序在登录之后,请使用Ember/MVVM。然后,你不必考虑搜索引擎,因为内容一般是私有的,不应该被索引。
    对于搜索引擎优化,你必须构建至少一部分内容,使其可索引。应用程序就是一个很好的例子。他们使用余烬,但也会发送一些生成的html以及应用程序html段塞,以便搜索引擎可以对它们进行索引。您可以阅读他们的方法。

    我们有一种不同的方法,可以看作是一种退步:我们预先呈现应用程序中每个页面的静态版本(每日计划任务)。此静态版本作为HTML文件存储在服务器上。每当我们嗅探蜘蛛/机器人用户代理时,我们都会提供该版本。

    关于第二点,您可以看看。该网站使用主干网,并为禁用的js浏览器和搜索引擎提供优雅的降级。