javascript – 不使用原生XMLHttpRequest的原因 – 为什么$.ajax是强制性的?

前端之家收集整理的这篇文章主要介绍了javascript – 不使用原生XMLHttpRequest的原因 – 为什么$.ajax是强制性的?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在写一个应用程序:

>绝对依赖于通过Javascript向服务器发送数据
>不得在代码中包含JQuery库.

(我不知道我的代码是否会包含在已经有jquery lib的网页中,我不知道是否会有正确的版本,我不知道是否会有JQuery冲突等等……)

我必须继续本机JS功能XMLHttpRequest(旧IE的ActiveX)方法,这很简单,但我看到警告:

“Without jQuery,AJAX coding can be a bit tricky!

Writing regular AJAX code can be a bit tricky,because different
browsers have different Syntax for AJAX implementation. This means
that you will have to write extra code to test for different browsers.
However,the jQuery team has taken care of this for us,so that we can
write AJAX functionality with only one single line of code.”

什么是“棘手”的?我怎么可能做错了?我所知道的

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+,Firefox,Chrome,Opera,Safari
  xmlhttp = new XMLHttpRequest();
  }
else
  {// code for IE6,IE5
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }

只是不同浏览器的额外代码,我的xmlhttp var应该从现在开始准备在IE5,IE6,IE7,Safari中完成工作.

是否应该进行跨浏览器代码调整,或者在使用本机XMLHttpRequest对象时还有什么我应该注意的吗?

解决方法

除非你需要支持真正的旧IE(显然使用不同的ActiveXObject),否则这是跨浏览器支持所必需的.

但是,使用例如jQuery提供了许多额外的优点:

>单一函数调用,没有不必要的变量使您的范围变得混乱.
>将对象自动序列化为GET / POST参数.为什么手动(需要正确编码值!),只需传递一个对象?
>自动解析响应,例如在JSON的情况下,您获得一个对象,而不仅仅是您需要手动解析的字符串.
>常见事件的好回调(成功/失败/完成)
>可插拔架构,以支持例如IE中的CORS XDomainRequest.

因为你提到你不能使用jQuery,因为你的应用程序将嵌入到可能与之冲突的另一个站点中:你可以通过包含jQuery然后使用$.noConflict(true)来恢复旧的$和jQuery变量来避免这种情况.要在代码中使用它,然后像这样写:

(function($) {

})(jQuery.noConflict(true));
原文链接:https://www.f2er.com/ajax/240756.html

猜你在找的Ajax相关文章