javascript:渐进式增强是否意味着没有json与ajax?

时间:2011-06-05 04:02:41

标签: javascript graceful-degradation progressive-enhancement

我阅读了这篇文章here,其中讨论了javascript的渐进增强功能,作者提到:

  

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

     

现在,使用JavaScript拦截这些链接并形成提交内容   传递信息   而是XMLHttpRequest。那你可以   选择页面的哪些部分需要   更新而不是更新   整页。

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

此外,我注意到,当我禁用Javascript(无法发布更新等)时,应用程序(例如Facebook)看起来很瘫痪。这是否意味着它无法正常处理优雅降级?

3 个答案:

答案 0 :(得分: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(重要的是)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

基本上,渐进式增强意味着您首先要建立一个完全正常的“no-Javascript”网站,然后通过添加Javascript功能然后添加AJAX来缓慢增强您的网站,同时保持“no-javascript”功能工作

这只是为了允许那些禁用Javascript的人按正常方式访问和使用该网站。