具有渐进增强功能的混合页面/单页网络应用程序(Angularjs,Ember.js)?

前端之家收集整理的这篇文章主要介绍了具有渐进增强功能的混合页面/单页网络应用程序(Angularjs,Ember.js)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道有没有人找到解决这个问题的办法。有没有办法找到两个世界的最好的:

>建立一个基于页面的网站,具有永久链接,可访问性,SEO和优雅的回退/逐步增强(基本上是所有的best practices of web development)
>并且对于那些具有javascript的响应式前端体验,具有ajax加载的内容,在浏览底层网站页面时不会刷新页面,最小化脚本/内容/ CSS / etc的冗余下载。 (像AngularJs或Ember.js这样的客户端框架的所有好处)

我看到几个主要的网站能够管理这个(gmail,stackoverflow),我看到Jeff’s new site在noscript标签中构建了一个裸机版本的站点

>是混合页面/单页应用程序的解决方案,以构建两个版本的站点,发送两个,让客户端决定哪个可以显示? (这是什么gmail?)
>或者是AngularJS等人的问题根本不是设计为允许优雅的退化?

这伤害了我的DRY大脑,认为#1是答案。

(我关注AngularJ的原因是,我喜欢支持html模板,声明样式和尝试修复js范围,Ember和其他框架也很好,也许其中一个更适合混合网站?)

这个问题有点微不足道,因为答案是“依赖”。例如,您提到Gmail,但是没有任何理由像Gmail这样的应用程序需要为SEO建立索引,但是根据您想要或需要支持内容,您可能希望确保不支持JavaScript。

然而,即使是“无javascript”的论点,这些日子越来越疲软,至少对于“Web应用程序”类来说。如果我想使用Windows应用程序,我需要Windows,如果我想使用一个javascript动力的Web应用程序,假设我需要一个没有使用它的浏览器是不合理的。

然而,回到你的问题,我只能说AngularJS,因为我是最熟悉的。在大多数情况下,它允许您支持逐行增强方法,尽管如果这是您想要支持的,则不要使用URL路由。您可以做的是使用AngularJS控制器,绑定和指令,类似于您可以如何使用jQuery来增强页面的交互和行为。

只要记住,这种方法将严重限制您对Angular(或Ember)可以做的事情,并且可能开始有争议,您从这种方法获得的是您无法轻松地使用jQuery的方法

现在的替代方案是做Twitter这样的网站。这基本上是从服务器提供完全呈现的HTML,用于初始加载的任何视图,然后使用Javascript进行后续加载和增强的UI行为。如果您真的需要支持使用和不使用Javascript进行浏览,并且具有改进第一个请求的渲染/加载时间的附加优势,这是非常有效的(尽管实施可能相当具有挑战性)。再次“这取决于”,因为如果可以使用它,它很大程度上取决于您的网站实际工作。你必须为它设计,它不会是微不足道的或容易的。

更新:

为了什么值得我们采用Year of Moo方法,并使用PhantomJS渲染需要SEO页面,并将其缓存的初始状态粘贴在某个地方来提供服务。我们有一个耙子任务我们运行部署来更新这一点。再次,这只是最初的状态,但它有助于摆脱现在的问题。

事情总是在变化,我相信在一年左右的时间里我会改变主意。

猜你在找的Angularjs相关文章