我刚刚介绍了MV *框架,并有机会尝试Ember.js使用他们网站上的TodoMVC应用教程。
我正在考虑将Ember用于我即将推出的一个项目(一个Ruby on Rails CRUD应用程序,类似于某些功能中的Twitter),但我仍然有点困惑,在我做出最终决定之前如果有人能解决以下问题,我会很高兴:
对于中型多页CRUD应用程序,使用像Ember这样的高级框架是一个好主意吗?与使用jQuery的DOM操作和AJAX功能构建的交互层相比,它会改善开发时间和维护吗?或者在开发复杂的单页应用程序(例如:Grooveshark)时使用Ember(等)只是很好吗?
考虑到应用程序将使用Rails开发,并假设将使用Ember,是否可以为禁用JavaScript和/或搜索引擎爬虫的浏览器提供基本功能的后备?它需要代码重复或其他肮脏的技巧吗?你知道可以用来实现它的任何技术吗?
是否可以使网站适应移动浏览(仅使用CSS)有效结果,或者在手机上运行Ember所带来的开销会使设备难以以某种方式呈现网站是否能保持响应?
答案 0 :(得分:3)
我们现在正处于一个非常大的Ember项目的中间,所以这是我对你的问题的看法。
我们发现Ember在为我们的单页应用程序创建丰富的UI方面非常有效,但我不知道如果您正在创建一个专为传统应用程序设计的应用程序,那将会更有帮助多页(查看页面,提交表单等)布局。
我认为这是关键--Ember完全基于JS,所以如果你需要支持没有JS的浏览器,你基本上必须编写一个并行应用程序。如果这是您的应用程序的硬性要求,我认为Ember(或任何MV * JS框架)将是不可能的
我们在移动设备上遇到的性能问题很少 - 我们的网站完全响应,并提供从Blackberries到台式机上最新Chrome的所有内容,性能良好。
答案 1 :(得分:0)
如果应用程序位于登录后面,请使用Ember / MVVM。然后你不必考虑搜索引擎,因为内容通常是私有的,不应该被编入索引。
对于搜索引擎优化,您必须构建至少部分内容,使其可以编制索引。一个很好的例子是Discourse应用程序。他们使用Ember但也发送了一些生成的html以及app html slugs,以便搜索引擎可以索引它们。您可以阅读他们的方法here。
答案 2 :(得分:0)
我们有一种不同的方法,可以看作是后退:我们预先渲染应用程序中每个页面的静态版本(每日计划任务)。此静态版本作为HTML文件存储在服务器上。每当我们嗅探蜘蛛/机器人用户代理时,我们都会提供该版本。