具有渐进增强功能的混合页面/单页网络应用程序(Angularjs,Ember.
我想知道有没有人找到解决这个问题的办法。有没有办法找到两个世界的最好的:
>建立一个基于页面的网站,具有永久链接,可访问性,SEO和优雅的回退/逐步增强(基本上是所有的best practices of web development) 我看到几个主要的网站能够管理这个(gmail,stackoverflow),我看到Jeff’s new site在noscript标签中构建了一个裸机版本的站点。 >是混合页面/单页应用程序的解决方案,以构建两个版本的站点,发送两个,让客户端决定哪个可以显示? (这是什么gmail?) 这伤害了我的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的页面,并将其缓存的初始状态粘贴在某个地方来提供服务。我们有一个耙子任务我们运行部署来更新这一点。再次,这只是最初的状态,但它有助于摆脱现在的问题。 事情总是在变化,我相信在一年左右的时间里我会改变主意。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |