1

我在这里读到了这篇关于 javascript 渐进增强的文章,作者提到:

首先,建立一个老式的网站,使用超链接和表单将信息传递到服务器。服务器随每个请求返回全新的页面。

现在,使用 JavaScript 拦截这些链接和表单提交,并改为通过 XMLHttpRequest 传递信息。然后,您可以选择需要更新页面的哪些部分,而不是更新整个页面。

我有点好奇这是否意味着在服务器端返回 html 标记而不是 json,这通常意味着在客户端构建标记?这种方法有缺点吗?

另外,我注意到应用程序,例如 Facebook,在我禁用 Javascript(无法发布更新等)时看起来相当残废。这是否意味着它不能正确处理优雅降级?

4

3 回答 3

4

渐进增强是否意味着没有带有ajax的json?

不,这绝对不是那个意思。如果 JavaScript 被禁用,则没有XMLHttpRequest,所以没有 ajax

现在,使用 JavaScript 拦截这些链接和表单提交,并改为通过 XMLHttpRequest 传递信息。

拦截链接和表单提交的 JavaScript 位可以自由更改发出请求的位置、URL 参数等,这意味着 ajaxified URL 不必与无 JavaScript 的 URL 相同。例如:

<a href="/some/page.html">linky</a>

可以被拦截并变成一个 XMLHttpRequest ,它实际上是为了

  • /some/page.json, 或者
  • /some/page.html?ajax=1, 或者
  • /bibbidi/bobbidi/boo(对于所有重要的事情)
于 2011-06-05T04:06:10.320 回答
0

渐进式增强意味着您从可以在任何地方工作的代码开始页面,然后逐渐添加该用户浏览器接受的功能。一个很好的例子是带有锚点的 ajax 类型功能。当页面加载时,您可以在 href 中使用 url,以便蜘蛛和非 JavaScript 浏览器仍然可以获取内容。但是您还添加了一个执行 ajax 加载的 onclick。这样,启用和禁用的客户端都能获得最佳行为。

于 2011-06-05T04:09:10.823 回答
0

从本质上讲,渐进式增强意味着您首先将构建一个完全工作的“无 JavaScript”网站放在首位,然后通过添加 Javascript 功能和 AJAX 来慢慢增强您的网站,同时保持“无 JavaScript”功能正常工作。

这只是为了让那些禁用了 Javascript 的人可以正常访问和使用该网站。

于 2011-06-05T04:10:07.487 回答