2013-06-25 17 views
3

我刚刚被介绍给MV *框架,并且有机会尝试使用Ember.jsTodoMVC应用程序教程他们在他们的网站上。为客户端MV *框架提供no-js回退

我正在考虑使用Ember作为我即将开展的项目之一(一个Ruby on Rails CRUD应用程序,类似于Twitter的一些功能),但我仍然有点困惑,在我做出最终决定之前,我会喜欢它如果有人可以明确以下担忧:

  1. 是否使用这种先进的架构为灰烬的中型多页的CRUD应用程序是一个好主意?与使用jQuery的DOM操作和AJAX功能构建的交互层相比,它能够缩短开发时间和维护吗?或者在开发复杂的单页面应用程序(例如:Grooveshark)时仅使用Ember(等)?

  2. 考虑到应用程序将使用Rails开发,并且假设将使用Ember,是否有可能为禁用JavaScript的浏览器和/或用于搜索引擎爬虫的基本功能提供备用功能?它是否需要代码重复或其他肮脏的技巧?你知道任何可以用来实现它的技术吗?

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

回答

3

我们现在正处在一个非常大的Ember项目中,所以这里是我对你的问题的想法。

  1. 我们发现灰烬成为我们的单页的应用程序创建富UI确实富有成效,但我不知道这是怎么回事,如果你创造设计的一种应用是大有帮助传统的多页(查看页面,提交表单等)布局。

  2. 我认为这是重头戏 - Ember完全基于JS,所以如果你需要支持没有JS的浏览器,你基本上必须编写一个并行应用程序。如果这是对您的应用程序的硬性要求,我认为Ember(或任何MV * JS框架)将不存在这个问题

  3. 我们在移动设备上的性能问题很少 - 我们的网站完全响应并呈现从黑莓到桌面上最新的Chrome都有很好的表现。

+0

对于第二点,你可以看看http://www.appscharts.me。该站点使用Backbone,并为禁用的js浏览器和搜索引擎提供优雅的降级。 – Yannick

0

@Scott Rankin,解决了大多数关注Pure Ember方法的问题。我将添加一个快速的方式来做出这个决定。

如果应用程序在登录后面,则使用Ember/MVVM。那么你不必考虑搜索引擎,因为内容通常是私人的,不应该被索引。

对于搜索引擎优化,您必须构建您的内容的至少一部分,使其可以索引。一个很好的例子是Discourse应用程序。他们使用Ember,但也发送一些生成的HTML连同应用程序的HTML段落,以便搜索引擎可以索引它们。你可以阅读他们的方法here

0

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