AJAX教程笔记,常用API

这篇具有很好参考价值的文章主要介绍了AJAX教程笔记,常用API。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AJAX
1、 什么是AJAX?
Asynchronous Javascript And XML:异步的JS和XML/JSON,由Google2002年在GoogleSuggest应用提出。
主要原理是利用浏览器底层提供的XMLHttpRequest对象,向服务器发起异步请求,并接收响应消息,
目的是实现页面内容的局部刷新,提高浏览体验,实现动态页面静态化。
涉及到的技术:HTML CSS JS DOM XML JSON等,属于前端范畴,是一个纯客户端技术。
2、 使用AJAX的步骤

  1. 创建XMLHttpRequest对象 – XMLDOM的对象
    var xhr = null;
    if(window.XMLHttpRequest){//DOM
    xhr = new XMLHttpRequest();
    }else{//老IE
    xhr = new ActiveXObject(‘Microsoft.XMLHTTP’);
    }

  2. 绑定onreadystatechange事件监听函数 – 负责监听服务器返回状态与处理返回数据
    xhr.onreadystatechange = function(){
    if(xhr.readyState=4){ //响应消息接收完成
    if(xhr.status
    =200){ //一个成功的响应
    doResponse(xhr.responseText);//处理函数
    }else{
    alert(‘接收到一个不成功的AJAX响应:’+xhr.status);
    }
    }
    }

  3. 创建请求消息
    xhr.open(‘GET/POST’, ‘xx.php’, true);

  4. 发送请求消息
    xhr.send( null/data );

3、 XMLHttpRequest对象的常用成员——重点
XHR对象的作用:发起异步的HTTP请求消息,并接收服务器返回的响应消息。
常用成员属性
status:0 保存着服务器返回的响应消息的状态码
statusText:’’ 保存着服务器返回的响应消息的原因短句
readyState:0
只读,随着请求响应的进程而改变 – 用于描述当前请求/响应进行到哪一步了 0:UNSENT 请求消息尚未发送
1:OPENED XHR已经创建请求消息,打开针对服务器的连接
2:HEADERS-RECIVED XHR对象已经接收到响应消息的头部
3:LOADING XHR正在加载响应主体数据
4:DONE XHR已经接收完毕响应消息
responseText:’’ 保存着响应消息的主体 – 看做一段string
responseXML:null 保存着响应消息的主体 – 看做一段XMLDOM
timeout:0 设置XHR发起请求后,等待服务器给出响应消息的时间
常用成员事件
onreadystatechange:fn 当XHR的readyState值发生改变,触发此句柄
ontimeout:fn 当XHR的请求超时,触发此句柄
onerror:fn 当XHR发生请求/响应错误,触发此句柄
常用的成员方法
open(method,URI,isAysnc) 创建一个http请求消息,打开一个针对服务器的连接
send(null/’k1=v1&k2=v2’) 发送http请求消息
setRequestHeader(name,value) 在请求消息发送前,设置一个请求消息头部
getAllResponseHeaders() 获取响应消息中所有头部
getResponseHeader(headerName) 获取响应消息中指定的头部
4、 使用原生AJAX发起HTTP GET请求消息
示例:用户名输入完成后,立即提示该用户名是否已被占用——异步请求/响应
//1 创建XHR对象
var xhr = …;
//2 绑定监听函数
xhr.onreadystatechange=function(){
if(xhr.readyState=4){
if(xhr.status
=200){
}else{
}
}
}
//3 创建请求消息
xhr.open(‘GET’, ‘xx.php?k1=v2&k2=v2&k3=v3’, true);
//4 发送请求消息
xhr.send(null);
5、 使用原生AJAX发起HTTP POST请求消息
示例:批量的数据录入,不需要页面跳转
//1 创建XHR对象
var xhr = …;
//2 绑定监听函数
xhr.onreadystatechange=function(){
if(xhr.readyState=4){
if(xhr.status
=200){
}else{
}
}
}
//3 创建请求消息
xhr.open(‘POST’, ‘xx.php’, true);
//3.5 设置请求头部
xhr.setRequestHeader(‘Content-Type’, ‘application/x-www-form-urlencoded’);
//4 发送请求消息
xhr.send(‘k1=v1&k2=v2’);
请求消息的Content-Type头常用值:
text/plain : 客户端向服务器提交的请求主体是一些普通文本数据(未经编码)——很多Web服务器会直接拒绝接收这样的请求数据
application/x-www-form-urlencoded : 客户端向服务器提交的请求主体是经过了编码的文本数据——默认情况下,HTMLForm标签会把所有的表单数据编码之后再提交给服务器
multipart/form-data : 客户端向服务器提交的请求主体中包含上传的文件
注意:HTTP协议规定:请求消息传递给服务器的数据中不能包含中文、特殊标点符号
响应消息的Conent-Type头常用值: MIME类型
常见的MIME(Multipurpose Internet Mail Extension):
.jpeg .jpg <= image/jpeg
.html .htm <= text/html
.mpeg3 .mp3 <= audio/mpeg3
MIME类型,就是用于唯一的标示一种特定格式的文件的一个描述符
常见的MIME类型:
image/jpeg image/gif image/png
text/plain text/html text/css
application/javascript application/xml application/json
application/msword …

6、 使用原生AJAX接收服务器返回的text响应
示例:点击酒馆,获得英雄列表
服务器端:
header(‘Content-Type: text/plain’);
客户端:
(1)(2) console.log(xhr.responseText);// 客户端用xhr.responseText接收
(3)(4)
7、 使用原生AJAX接收服务器返回的html响应——重点
示例:动态数据的级联下拉列表
服务器端:
header(‘Content-Type’, ‘text/html’);
客户端:
(1)(2) document.getElementXxxx().innerHTML = xhr.responseText; // 客户端用xhr.responseText接收,挂到dom树上
(3)(4)

8、 使用原生AJAX接收服务器返回的script响应
示例:加载不同的JS,实现页面主题的定制
服务器端:
header(‘Content-Type’, ‘application/javascript’) //如果是从php页面返回js脚本时,设置,如果直接请求js页面,不需要
客户端:
(1)
(2) typeof( xhr.responseText ); //string
eval( xhr.responseText ); //把string作为js来执行
(3)xhr.open(‘GET’,‘theme+’.js’,true); //或直接请求js页面
(4)
9、 使用原生AJAX接收服务器返回的XML响应
XML DOM:用于处理XML文档:XMLHttpRequest (ajax异步请求对象),DOMParser - 可以把一段XML字符串解析为一棵DOM树
示例:异步的加载新闻列表
服务器端:
header(‘Content-Type’, ‘application/xml’)
客户端:
(1)
(2) /使用DOM解析 再挂到DOM树上/
var xmlDocument=xhr.responseXML;
//console.log(typeof(xmlDocument));
//console.log(xmlDocument);
//使用核心DOM操作方法,解析XMLDOM树
var list=xmlDocument.getElementsByTagName(“news”);
(3)
(4)

10、使用原生AJAX接收服务器返回的json响应——重点
JSON格式表示字符串,有两种格式:
JSON对象字符串格式:’{ “k1”:“v1”, “k2”: v2 }’
JSON数组字符串格式:’[ v1, v2, v3… ]’

示例:异步的加载新闻列表
服务器端:
header(‘Content-Type: application/json’);
$arr = [ ];
echo json_encode( $arr ); //PHP数组=>JSON字符串
客户端:
(1)
(2) var jsObj = JSON.parse( xhr.responseText ); //把JSON字符串解析为JS数组/对象
(3)
(4)
服务器端(PHP数据) => JSON字符串 => 客户端(JS对象)
11、jQuery对AJAX操作的封装(6个方法)

1、load()
$(’…’).load(url, [data], [fn]) 异步加载指定URL返回的数据(必需是text/html),挂载为当前选定元素的innerHTML
示例:仿写GoogleSuggest,搜索建议
服务器端:
header(‘Content-Type: text/html’);
客户端:
KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲suggest ul').lo….ajax()
使用方法:
文章来源地址https://www.toymoban.com/news/detail-851115.html

到了这里,关于AJAX教程笔记,常用API的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序入门笔记(一) 黑马程序员前端微信小程序开发教程

    微信小程序基本介绍 小程序和普通网页有以下几点区别: 运行环境:小程序可以在手机的操作系统上直接运行,如微信、支付宝等;而普通网页需要在浏览器中打开才能运行。 开发技术:小程序采用前端技术进行开发,如HTML、CSS、JavaScript等;而普通网页也是使用类似的前

    2024年02月08日
    浏览(65)
  • [前端系列第6弹]Ajax简明教程:轻松实现Web页面的异步交互

    在这篇文章中,我将介绍Ajax的基本概念、原理、优缺点、实现方法和应用场景,以及如何使用它来实现Web页面的异步交互。还将给一些简单而实用的例子,让你可以跟着我一步一步地编写自己的Ajax代码。 目录 一、什么是Ajax 二、如何使用Ajax (一)JavaScript中使用Ajax (二)

    2024年02月13日
    浏览(45)
  • Ajax,前后端分离开发,前端工程化,Element,Vue路由,打包部署

    Ajax介绍 Axios 案例 前后端分离 前端工程化 环境准备,nodejs安装,D:javaprojectjavawebday03-Vue-Elementday03-Vue-Element资料NodeJS安装文档 Vue项目简介 它本来默认端口号是8080 ,但这就和tomcat冲突了所以修改为7000 Vue项目开发流程 Vue组件库Element pagination分页组件,table表格组件,Dial

    2024年02月05日
    浏览(70)
  • JavaWEB学习笔记(二)------HTTP、Servlet、会话、过滤器、监听器、Ajax、前端工程化

    目录 HTTP HTTP1.1 请求和响应的报文格式 请求报文 响应报文 常见状态响应码 Servlet  静态资源和动态资源 ​编辑  Servlet简介  Servlet开发流程 导入和响应头问题 url-pattern不同写法 url-pattern工作方式 Servlet注解方式配置 Servlet生命周期  Servlet继承结构 Servlet接口 GenerisServlet类 Ht

    2024年01月21日
    浏览(43)
  • Java学习笔记21——常用API

    在 java.lang 下,使用不需要导包 被 final 修饰,是最终类,没有子类 执行基本数字运算的方法 没有构造方法,直接用类名访问(被static修饰 )。 Math的常用方法 在 java.lang 下,使用不需要导包 被 final 修饰,是最终类,没有子类 System类包含几个有用的类字段和方法。它不能被

    2024年02月07日
    浏览(47)
  • Java笔记_11(常用API)

    是一个帮助我们进行数学计算的工具类 私有化构造方法,所有的方法都是静态的 Math类的常用方法 方法名 说明 public static int abs(int a) 获取参数绝对值 public static doublie ceil(double a) 向上取整 public static doublie floor(double a) 向下取整 public static int round(float a) 四舍五入 public static i

    2023年04月14日
    浏览(47)
  • Java 复习笔记 - 常用API 中

    Java的BigInteger类是一个用于处理任意精度的整型数据的主类。它位于java.math包中,属于Java标准库的一部分。BigInteger可以用于进行大整数的算术运算,包括加减乘除等操作,并且可以表示的整数范围不受Java的Integer类型(在Java中是int)的限制。 BigInteger有两种使用方式,一种是

    2024年02月09日
    浏览(42)
  • 百度翻译API使用教程(前端+后端)

    首先我们需要登录百度翻译开放平台,获取开发者资格: 访问 百度翻译开放平台 然后进行注册(如果有百度账号的话可以直接登录) 注册成功后点击“产品服务”: 跳转到通用文本API界面: 在页面底部点击“立即使用”即可选择服务进行使用 通用文本API有三种服务可供选

    2024年02月14日
    浏览(50)
  • Flink学习笔记(二)Flink常用API详解

            提供了对时间和状态的细粒度控制,简洁性和易用性较差,主要应用在对一些复杂事件的处理逻辑上。         要提供了针对流数据和离线数据的处理,对低级API进行了一些封装,提供了filter、sum、max、min等高级函数,简单且易用,所以在工作中应用比较广泛

    2023年04月08日
    浏览(44)
  • 项目开发常用的API推荐

    历史天气预报:可查询国内指定城市的历史天气预报数据,最长可查询至2018年1月1日。目前支持3400+国内城市的历史预报数据查询,同时也支持国内任意经纬度查询。 全国快递物流查询:目前已支持600+快递公司的快递信息查询。自动识别快递公司及单号,服务器毫秒响应,数

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包