【问题标题】:When is it appropriate to use AJAX?什么时候适合使用 AJAX?
【发布时间】:2010-10-08 04:54:56
【问题描述】:

什么时候适合使用 AJAX?
使用 AJAX 的优缺点是什么?

在回答我的最后一个问题时:有些人似乎非常坚持我应该只在适当的情况下使用 AJAX: Should I add AJAX logic to my PHP classes/scripts?

针对 Chad Birch 的回答: 是的,我指的是在开发一个“标准”站点时,该站点将使用 AJAX 来获得好处,并且不会被其应用程序削弱。以会破坏搜索排名的方式使用 AJAX 是不可接受的。因此,如果“保持网站完好无损”需要更多的工作,那将是一个“骗局”。

【问题讨论】:

    标签: php ajax webforms


    【解决方案1】:

    这是一个相当大的主题,但您应该使用 AJAX 来增强用户体验,而不是让网站完全依赖它。请记住,搜索引擎和其他一些访问者将无法执行 AJAX,因此如果您依赖它来加载您的内容,那对您不利。

    例如,您可能认为让用户访问您的博客会很好,然后让页面在他们已经存在时使用 AJAX 动态加载最新文章。但是,当 Google 尝试为您的博客编制索引时,它只会获取空白站点。

    查找与此主题相关的资源的一个很好的搜索词是“渐进式增强”。那里有很多好东西,花一些时间关注周围的链接。这是一个开始:

    http://www.alistapart.com/articles/progressiveenhancementwithjavascript/

    【讨论】:

    • 感谢您的第一段。但是,关于博客部分,您不能只获取一个普通的博客页面,该页面将被索引,然后添加 AJAX 吗?
    • 是的,这正是“渐进式增强”的意思。对于不能使用 AJAX 的人(或某些机器人)来说,该页面仍然应该是完全可用的,但如果可以的话,它应该会变得更好。很多网站都会犯这个错误,尝试使用默认关闭脚本的 NoScript,很多网站根本无法运行。
    • 一个好的代码设计原则是:你永远不想破坏那些不使用或不能使用 Javascript 的人的体验。
    【解决方案2】:

    当您只更新页面的一部分或执行一个根本不更新页面的操作时,AJAX 可能是一个非常好的工具。对于这样的事情,它比整个页面刷新要轻巧得多。相反,如果您的整个页面重新加载或您更改为不同的视图,您真的应该只是链接(或发布)到新页面,而不是通过 AJAX 下载并替换整个内容。

    使用 AJAX 的一个缺点是它需要 javascript 才能工作,或者您需要以这样一种方式构建视图,即 UI 在没有它的情况下仍然可以工作。这比仅通过普通链接/帖子更复杂。

    【讨论】:

      【解决方案3】:

      AJAX 通常用于在页面已经加载(不加载另一个页面)时执行 HTTP 请求。

      最常见的用途是更新view的一部分。请注意,这不包括刷新整个视图,因为您可以导航到新页面。

      另一个常见的用途是提交表单。在所有情况下,尤其是对于表单,重要的是要有好的方法来处理没有 javascript 或禁用 javascript 的浏览器。

      【讨论】:

        【解决方案4】:

        我认为使用 ajax 技术的优势不仅在于创造更好的用户体验,而且能够仅对特定数据进行服务器调用的能力是一个巨大的性能优势。

        假设有一个巨大的带宽消耗者网站(如 stackoverflow),用户完成的大部分导航都是通过页面重新加载以及通过 HTTP 持续发送的数据来完成的。

        当然,缓存和其他技术有助于解决带宽开销问题,但我个人认为每次发送大量 HTML 确实是一种浪费。

        缺点是 SEO(不适用于高度基于 ajax 的网站)和禁用 JavaScript 的人。

        【讨论】:

        • 我要补充一点,如果明智地使用,AJAX 会带来性能优势。太多了,你会导致用户端服务器端出现性能问题。
        【解决方案5】:

        当您的应用程序(或您的用户)需要比传统网页更丰富的用户体验时。

        【讨论】:

          【解决方案6】:

          Ajax 为您提供了两件大事:

          响应性 - 如果需要,您一次只能更新网页的一部分(节省重新加载页面的时间)。例如,它还可以更轻松地对表格中显示的数据进行分页。

          用户体验 - 这与响应能力有关。使用 AJAX,您可以添加动画、更酷的弹出窗口和特殊效果,为您的网页提供更新、更清洁和更酷的外观和感觉。如果没有人认为这很重要,那么看看 iPhone。用户体验将人们吸引到应用程序中并让他们想要使用它,这是确保应用程序成功的关键步骤之一。

          要获得好的案例研究,请查看此网站。 AJAX 效果,例如在发布新答案时为您的新答案设置动画、弹出窗口告诉您无法执行某些操作以及自您开始自己的答案以来已发布新答案的提示,这些都是吸引人们进入该网站并使其成功的一部分。

          【讨论】:

            【解决方案7】:

            Javascript 应该始终只是您网站功能的补充。您应该能够在不涉及任何 Javascript 的情况下使用和浏览该网站。您可以使用 Javascript 作为现有功能的补充,例如避免整页重新加载。这是可访问性的一个重要因素。绝不应将 Javascript 用作访问或完成您网站上的请求的唯一途径。

            由于 AJAX 使用 Javascript,因此这里同样适用。

            【讨论】:

              【解决方案8】:

              Ajax 主要用于当您想要重新加载页面的一部分而不将所有信息重新发布到服务器时。

              缺点:

              • 比发普通帖子更复杂(使用不同的浏览器,编写服务器端代码来处理部分回发)
              • 引入了潜在的安全漏洞 ( 您正在引入与服务器交互的附加代码。这可能是客户端和服务器上的问题。
                在客户端,您需要发送和接收响应的方式。这是与浏览器交互的另一种方式,这意味着必须保护另一个入口点。执行任意代码,将数据发布到非预期来源等。随着时间的推移,Ajax 应用程序有几个漏洞,但总会有更多。 )

              优点:

              • 对于最终用户来说,它看起来更华丽
              • 允许在页面上显示大量信息,而无需同时加载所有信息
              • 页面更具交互性。

              【讨论】:

              • 解释使用 Ajax 创建的安全漏洞。
              • 不应该——服务器仍然负责执行它。
              • 你不能是认真的吗?您认为实现 ajax 时不会有任何额外的安全漏洞吗?
              • 是的,我是认真的。 ajax 存在的所有安全问题在传统的 http 请求中已经存在。 Ajax 没有为我们与浏览器或服务器交互的方式添加任何内容。它使用的是两端已经存在的技术
              • 漏洞不是基础技术。导致问题的原因是关于如何使用技术的心态。 Ajax 改变了 Web 应用程序的创建方式以及新的漏洞利用方式。关于什么使应用程序安全的某些假设不再适用。
              猜你喜欢
              • 2011-09-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-02-28
              • 2019-09-17
              • 2019-08-25
              • 2011-03-11
              • 2011-08-09
              相关资源
              最近更新 更多