Chr*_*ile 23 seo progressive-enhancement graceful-degradation ember.js angularjs
我想知道是否有人找到了解决这个问题的方法.有没有办法让两全其美:
我看到一些主要网站能够管理这个(gmail,stackoverflow),我看到Jeff的新网站在一个noscript标签中构建了一个简单的网站版本.
我认为#1就是答案,让我的DRY大脑受伤.
(我关注AngularJs的原因是我喜欢它支持html模板,声明式样式,以及它修复js范围的尝试.Ember和其他框架也很出色;也许其中一个更适合混合站点?)
Chr*_*ola 14
这个问题有点细致,因为答案是"它取决于".例如,您提到了Gmail,没有任何理由要求像Gmail这样的应用程序需要为SEO编制索引,但根据您想要或需要支持的内容,您可能希望确保您可以支持不使用Javascript.
然而,即使是"无javascript"的论点,这些日子也变得疲惫不堪,至少对于"Web应用程序"这类而言.如果我想使用Windows应用程序,我需要Windows,如果我想使用javascript驱动的Web应用程序,那么假设我需要一个没有残缺的浏览器来使用它是不合理的.
但是回到你的问题我只能和AngularJS说话,因为我最熟悉它.在大多数情况下,它确实允许您支持渐进增强方法,但如果这是您想要支持的,则不要期望使用URL路由之类的东西.你可以做的是使用AngularJS控制器,绑定和指令,类似于你如何使用jQuery来增强页面的交互和行为.
请记住,这种方法将严重限制你可以用Angular(或Ember)做的事情,并且你可能会开始有争议的是你从这种方法得到的,你不能单独使用jQuery.
这些天的替代方案是做Twitter之类的网站.对于初始加载的任何视图,这基本上是从服务器提供完全呈现的HTML,然后使用Javascript进行后续加载和增强的UI行为.如果您确实需要支持使用和不使用Javascript进行浏览,并且具有改善第一个请求的呈现/加载时间的额外好处,那么这非常有效(尽管实现可能非常具有挑战性).再次"它取决于",因为它很大程度上取决于您的网站如何实际工作,如果可以使用它.你必须为它设计,它不会是微不足道或容易的.
更新:
值得一提的是,我们采用Moo年方法并使用PhantomJS渲染需要搜索引擎优化的页面,并将缓存的初始状态粘贴到某个地方为其提供服务.我们在部署上运行了一个rake任务来更新它.这只是初始状态,但它现在有助于解决问题.
事情总是在变化,我相信我会在一年左右的时间里改变主意.
| 归档时间: |
|
| 查看次数: |
5615 次 |
| 最近记录: |