6 《锋利的jQuery》Ajax的应用(略。)
Ajax的优势
1、不需要插件支持
2、优秀的用户体验
3、提高web程序的性能(传输数据的方式,按需发送)
4、减轻服务器和带宽的负担
Ajax的不足
1、浏览器对XMLHttpRequest对象支持度不足
2、破坏浏览器前进、“后退”的正常功能
3、对搜索引擎的支持不足
4、开发和调试工具的缺乏
Ajax的核心是XMLHttpRequest对象,它是通过Ajax实现的关键——发送异步请求、接收响应及执行回调都是通过它来完成的。
$(function () {
var xmlHttpReq = null;
// 创建对象
// IE5,6是以ActiveXObject方式引入XMLHttpRequest
if (window.ActiveXObject) {
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
// 其他浏览器XMLHttpRequest是window的子对象
else if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
}
xmlHttpReq.open("GET", "data.txt", true);
xmlHttpReq.onreadystatechange = RequestCallBack; //当readyState值改变时,会激发onreadystatechange事件,
//使用该属性来注册回调事件处理器
xmlHttpReq.send(null); //发送请求
function RequestCallBack() {
if (xmlHttpReq.readyState == 4) { //请求完成加载
if (xmlHttpReq.status == 200) { //响应已经成功
$("#mes").html(xmlHttpReq.responseText);
}
}
}
});
jquery对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,第2层是load()、$.get()、$.post()方法,第3层是$.getScritp()和$.getJSON()方法。
1、load()方法
load(url [,data] [,callback])
a、载入HTML文档 :$("#resText").load("test.html");
b、筛选载入的HTML文档:$("#resText").load("test.html .para");
c、传递方式:如果没有参数则采用GET方式传递,反之,则会自动转换为POST方式
d、回调参数:该回调函数有三个参数,分别是
$("#resText").load("test.html",function(responseText,textStatus,XMLHttpRequest){
// responseText: 请求返回的内容
// textStatus: 请求状态:success、error、notmodified、timeout四种
// XMLHttpRequest: XMLHttpRequest对象
})
tip:在load()方法中无论Ajax请求是否成功,只要当请求完成(complete)后,回调函数就被触发
2、$get()和$pos()方法
load()方法通常用来从web服务器上获取静态的数据文件,而$get()或者$post()是传参数给服务器中的页面。
$get()和$pos()方法是jquery中的全局函数,而在此之前的jquery方法都是对jquery对象进行操作的。
$.get(url [,data] [,callback] [,type])
| 参数名称 | 类型 | 说明 |
| url | String | 请求的HTML页的地址 |
| data(可选) | Object | 发送至服务器的key/value数据会作为QueryString附加到请求URL中 |
| callback(可选) | Function | 载入成功时回调函数(当为success)自动将请求结果和状态传递给该方法 |
| type(可选) | String | 服务器返回内容的格式,包括xml,html,script,json,text和_default |
回调函数跟load()方法不同的是,只有当数据成功返回(success)后才被调用。
function(data,textStatus){
//data 返回的内容,可以是XML文档,JSON文件,HTML片段等
//textStatus 请求状态:success,error,notmodified,timeout 四种
}
6 《锋利的jQuery》Ajax的应用(略。)的更多相关文章
- 锋利的JQuery —— Ajax
大图猛戳
- 锋利的jQuery学习总结
通过对<锋利的jQuery>(第二版)一书的学习,发现此书讲解通俗易懂,是学习jQuery的一本很好的指导书,特作如下总结.此书主要讲解了jQuery的常用操作,包括认识jQuery,jQ ...
- 【锋利的jQuery】中全局事件ajaxStart、ajaxStop不执行
最近一直都在研究[锋利的jQuery],确实是一本好书,受益匪浅.但由于技术发展及版本更新等原因,里面还是有些坑需要踩的. 比如:第六章七节中提到的全局事件ajaxStart.ajaxStop照着案例 ...
- 锋利的jQuery(第二版)学习总结
通过对<锋利的jQuery>(第二版)一书的学习,发现此书讲解通俗易懂,是学习jQuery的一本很好的指导书,特作如下总结. 此书主要讲解了jQuery的常用操作,包括认识jQuery,j ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- 《锋利的jQuery》学习总结
通过对<锋利的jQuery>(第二版)一书的学习,发现此书讲解通俗易懂,是学习jQuery的一本很好的指导书,特作如下总结.此书主要讲解了jQuery的常用操作,包括认识jQuery,jQ ...
- IE8/9 JQuery.Ajax 上传文件无效
IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...
- jquery ajax解析
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对 ...
- jQuery.ajax 根据不同的Content-Type做出不同的响应
使用H5+ASP.NET General Handler开发项目,使用ajax进行前后端的通讯.有一个场景需求是根据服务器返回的不同数据类型,前端进行不同的响应,这里记录下如何使用$.ajax实现该需 ...
- jQuery.ajax(url,[settings])
概述 通过 HTTP 请求加载远程数据. jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象. ...
随机推荐
- 基于maven+dubbo+spring+zookeeper的简单项目搭建
maven下搭建dubbo小demo,供初学者学习,有不正确地方还请见谅. 先推荐一篇创建maven项目的文章,个人认为比较完整详细清楚: http://www.cnblogs.com/leiOOle ...
- Android 使用意图播放本地视频
Android播放视频的方式有三种: 一.使用意图播放,调用本地安装的播放器,选择一个进行播放. 二.使用VideoView播放(VideoView事实上是对MediaPlayer的封装,使用起来非常 ...
- JavaScript实现网页元素的拖拽效果
以下的页面中放了两个div,能够通过鼠标拖拽这两个元素到任何位置. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFja2ZydWVk/font/5a6 ...
- browsersync按照官网,然后本地配置后,动态监听时不起作用
官方API也未曾标注,要添加文件指向 --files 所以解决方案就是: browser-sync start --proxy "tp5.cn" --files "css ...
- vue-cli配置文件详解
转自: https://blog.csdn.net/Mr_YanYan/article/details/79233188
- UDP通信注意事项
今天调试UDP,笔记本上面可以实现但台式机上面竟然无法通信,后来找了半天,原来是权限问题.必须将用户权限设置为最低才行. 在运行里面输入UAC (user access control )用户权限设置 ...
- 一篇文章说完Java的垃圾回收过程
想要了解java的垃圾回收过程首先要理解java堆的内存模型,简单表示如下: 从上面的图片可以看出,java的堆内存可以简单的分为,新生代和老年代,在新生代中有分为三个区域,1个Eden区和2个S ...
- 转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用
JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原 ...
- HDU 2255 奔小康赚大钱 KM裸题
#include <stdio.h> #include <string.h> #define M 310 #define inf 0x3f3f3f3f int n,nx,ny; ...
- 每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai ,若想让这门课的考试成绩多拿一分的话,小v要花bi 的时间复习,不复习的话当然就是0分。同时我们显然可以发现复习得再多也不会拿到超过满分的分数。为了拿到奖学金,小v至少要花多少时间复习。
遇到问题要常思考为什么,做这道题的时候,要注意给定的数据范围. 第一行三个整数n,r,avg(n大于等于1小于等于1e5,r大于等于1小于等于1e9,avg大于等于1小于等于1e6),接下来n行,每行 ...