【问题标题】:What are the benefits of a XMLHttpRequest?XMLHttpRequest 有什么好处?
【发布时间】:2010-11-16 18:06:54
【问题描述】:

XML HTTP 请求有什么好处?给定的服务器可以为普通请求(非 XHR)发送数据(例如一些 JSON 序列化),就像它会为 XHR 请求发送数据一样。并且这些数据也可以异步处理(例如通过浏览器)。那么为什么要发明 XMLHttpRequest 呢?

我能想到的一些事情:

  • 为 HTML 和 Web 服务使用相同的 URL
  • 让服务器知道必须快速处理。

【问题讨论】:

  • XMLHttpRequest 在 JSON 之前就存在于 1999 年(我猜,因为支持 Exchange 2000),回答你的问题吗?
  • JSON 就是一个例子。然后让我们说XML。 XHR 还在使用中,我希望不仅仅是一些古老的约定。

标签: ajax web-services http xmlhttprequest


【解决方案1】:

据我所知,XmlHttpRequest 的第一个用途是用于 OWA,它在线上使用 WebDAV。所以告诉我如何在没有它的情况下执行 GET/POST 以外的方法。

【讨论】:

    【解决方案2】:

    XHR 的一个重要特点是它是异步的,您可以同时运行多个 XHR 请求。例如,您的网页上可以有多个告密者,它们都独立并同时更新。

    【讨论】:

      【解决方案3】:

      XMLHttpRequest(或 IE 中的 ActiveXObject)允许 Javascript 发出 HTTP 请求。创建它是为了能够在 Javascript 中检索数据,而无需更改页面/刷新浏览器。

      有非 javascript 方法可以在不刷新页面的情况下检索数据,但如果您使用的是 Javascript XMLHttpRequest,则可以选择。许多库通过在其库中实现 ajax 函数(例如 jQuery.ajax())简化了此调用的使用,这导致大多数人甚至没有意识到 XMLHttpRequest 是其背后的底层调用。

      【讨论】:

      • 为什么 Javascript 不只是在后台执行正常请求,例如请求其他站点......然后处理结果(也在后台)并做任何它想做的事情。我知道 Javascript XMLHttpRequest 对象,但为什么它对请求使用特殊标头?通过使用这种请求,我期望服务器有什么特殊功能(没有该标头就无法完成)?
      • 服务器没有特殊功能。它所做的只是像任何其他 http 请求一样从服务器获取网页。服务器不需要做任何不同的事情,因为它是一个 xhr 调用,除非你想要它,这样你就可以让客户端上的事情变得更容易。
      • 所以请求头中的X-Requested-With: XMLHttpRequest 只是一些并不真正需要的额外信息,但如果它愿意,可能会导致服务器获得一些额外的功能?对吗?
      【解决方案4】:

      我认为它存在的最大原因是它早于 Ajax JSON 请求。它最初是做基于 AJAX 的事情的唯一方法。在请求 HTML 页面并使用请求的信息填充 HTML 元素时,它仍然很有用。在该实例中使用 XHR 比解析 JSON 并读取变量要简单得多。

      我想简单的答案是,如果您正在寻找单个数据,那么处理请求会更简单。

      【讨论】:

      • 好的,但我看不出响应有什么不同。服务器可以在有或没有 XHR 的情况下发回完全相同的数据。一个普通的请求就不能只发回一条数据吗?
      猜你喜欢
      • 2012-10-28
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多