【问题标题】:How to use backbone.js to make a site also functional with client without JS如何在没有 JS 的情况下使用backbone.js 使网站也可以与客户端一起使用
【发布时间】:2012-10-28 09:42:47
【问题描述】:

看看http://www.usatoday.com,该网站是用backbone.js 制作的,但没有它也能完美运行。

我不认为他们使用像 http://phantomjs.org 这样的东西。

有人知道他们是怎么做到的吗?

谢谢

附:我今天也发邮件给美国,如果他们回答并允许我,我会报告她他们说的话。

【问题讨论】:

  • 对我来说效果不佳,至少在 Chrome 上是这样。我可以看到布局和一些图形,但所有加载 gif 都是永久的,没有加载。单击时链接不起作用等...
  • @elclanrs 它对我来说也不是完美,但是重要的部分(例如网站的所有主要内容)都可以访问,问题主要是与侧边栏。
  • 侧边栏用于导航......所以你不太关心 SEO。

标签: javascript backbone.js seo


【解决方案1】:

他们使用一种叫做progressive enhancement的技术。

本质上,这意味着您编写基本站点没有 JS,并且稍后仅在其之上添加JavaScript以改进功能。

它并没有什么特别之处 - 服务器只是发送页面的完整 HTML,可用于呈现网站,而不是使用 Backbone 从模板动态生成标记。

更具体地说,在这种情况下使用的技术,看起来它们主要在服务器上生成内容,即使使用 Ajax 加载它也是如此。

在启用 JS 的情况下更改页面时,它们会从服务器发送完整的页面内容标记。这样做很可能是为了改善网站的 JS 和非 JS 版本之间的代码重用。

发送的 HTML 块似乎包含一些 JSON。这很可能是为其客户端实现加载的,因此它知道您当前正在查看的内容。

【讨论】:

  • 我知道渐进增强。但我想知道他们在这种情况下是如何做到的。当您更改页面时,我看到您获得了一个包含 json 的完整网页。这不是使用backbone.js 的常用方式。
  • @gagarine 我更新了答案,希望这能解释得更多。
  • 好的。我知道了。他们不通过 json 加载模型,而是在 html 中选择内容。他们只是有一个标志“是 ajax”,而不是给出没有块的页面......就是这样。 stackoverflow.com/questions/7805387/…
猜你喜欢
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2021-02-09
  • 2015-06-17
  • 2011-09-14
  • 1970-01-01
相关资源
最近更新 更多