AJax技术

从零开始学习jQuery (六) AJAX快餐(6)

字号+ 作者:H5之家 来源:H5之家 2017-05-17 08:04 我要评论( )

讲解: 以前我使用dojo类库时官方默认的文件不支持跨域最后导致我放弃使用dojo(虽然在网上找到了可以跨域的版本, 但是感觉不够完美). 所以我特别对这个函数的核心实现和使用做了研究. 首先了解此函数的jQuery内部实现, 仍然使用get函数, jQuery所有的Ajax函数

讲解:

以前我使用dojo类库时官方默认的文件不支持跨域最后导致我放弃使用dojo(虽然在网上找到了可以跨域的版本, 但是感觉不够完美).  所以我特别对这个函数的核心实现和使用做了研究.

首先了解此函数的jQuery内部实现, 仍然使用get函数, jQuery所有的Ajax函数包括get最后都是用的是jQuery.ajax(), getScript将传入值为"script"的type参数,  最后在Ajax函数中对type为script的请求做了如下处理:

];
);
script.src
= s.url;

上面的代码动态建立了一个script语句块, 并且将其加入到head中:

head.appendChild(script);

当脚本加载完毕后, 再从head中删除:

// Handle Script loading
jsonp ) {
;

// Attach handlers for all browsers
(){

) ) {
done
;
success();
complete();

// Handle memory leak in IE
;
head.removeChild( script );
}
};
}

我主要测试了此函数的跨域访问和多浏览器支持.下面是结果:

我主要测试了此函数的跨域访问和多浏览器支持.下面是结果:

  IE6 FireFox 注意事项

非跨域引用js 通过 通过 回调函数中的data和textStatus均可用

跨域引用js 通过 通过 回调函数中的data和textStatus均为undifined

下面是我关键的测试语句, 也用来演示如何使用getScript函数:

(event)
{
$.getScript(
(data, textStatus)
{
alert(data);
alert(textStatus);
alert(
this.url);
});
});

$(
(event)
{
$.getScript(
(data, textStatus)
{
alert(data);
alert(textStatus);
alert(
this.url);
});
});

5.

Returns: XMLHttpRequest

说明:

通过远程 HTTP POST 请求载入信息。

这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。

讲解:

具体用法和get相同, 只是提交方式由"GET"改为"POST".


6.

Returns: XMLHttpRequest

说明:

通过 HTTP 请求加载远程数据。

jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。

$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。

$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。

注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。

注意:如果dataType设置为"script",那么所有的远程(不在同一域名下)的POST请求都将转化为GET请求。(因为将使用DOM的script标签来加载)

jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。

讲解:

这是jQuery中Ajax的核心函数, 上面所有的发送Ajax请求的函数内部最后都会调用此函数.options参数支持很多参数, 使用这些参数可以完全控制ajax请求. 在Ajax回调函数中的this对象也是options对象.

因为平时使用最多的还是简化了的get和post函数, 所以在此不对options参数做详细讲解了. options参数文档请见:

#options

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jquery 终止ajax请求方法_abort方法使用

    jquery 终止ajax请求方法_abort方法使用

    2017-05-17 08:05

  • jquery ajax缓存问题解决方法小结

    jquery ajax缓存问题解决方法小结

    2017-05-15 11:01

  • 值得分享和收藏的xmlplus组件学习教程

    值得分享和收藏的xmlplus组件学习教程

    2017-05-14 13:00

  • C#学习之路

    C#学习之路

    2017-05-13 08:00

网友点评