IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JS中的ajax -> 正文阅读

[JavaScript知识库]JS中的ajax

Ajax
–1,概述
Ajax 即Asynchronous Javascript And XML( 异步的JS和XML )

Ajax是多种技术的综合应用

Ajax是客户端的技术,它可以实现 局部刷新 网页

Ajax 可以在不重新加载整个网页的情况下,与服务器交换数据,并且更新部分网页

ajax优势: 异步访问(加快响应速度,不必等待),局部刷新(不必刷新整个网页,只是局部刷新)

AJAX编程步骤

1.创建XMLHttpRequest对象
2.设置请求方式
3.调用回调函数
4.发送请求
5.处理返回的结果

属性

readyState:
0:为初始化 已经创建好了XMLHttpRequest对象xml 但是还没有初始化
1:已经初始化好了XMLHttpRequest对象xml 准备好要发送了
2:send被调用 请求已经发送 但是还没有收到服务器的响应
3:浏览器正在接受服务器发送过来的请求 但是还没有接受完
4:浏览器已经 接受请求完毕
responseText:
服务器返回的响应文本
responseXml:
服务器返回的响应xml
status
服务器的http状态码
statusText
服务器的http状态原因文本

方法:

open("方法",url,是否异步)
send(参数) 参数为向服务器传递的数据 如果是get的话 参数为null
onreadystatechange=function(){} 当xml的readyState发生改变的时候就会调用,所以在这个过程中onreadystatechange总共会被调用5次

实例:

<!DOCTYPE HTML>
<html>
<head>
? ? <meta charset="utf-8">
? ? <title>Ajax实例</title>

<script type="text/javascript">
? ? //初始化一个存储XMLHttpRequest对象的变量
? ? var xhr = null;
? ? //定义一个函数用来创建XMLHttpRequest对象,兼容各个版本
? ? function CreatXHR() {
? ? ? ? //判断浏览器是否支持ActiveX控件,针对IE6及之前版本
? ? ? ? if (window.ActiveXObject) {
? ? ? ? ? ? //将所有可能出现的ActiveXObject版本都放在一个数组中
? ? ? ? ? ? var arrXHR = ['Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
? ? ? ? ? ? //通过循环创建XMLHttpRequest对象
? ? ? ? ? ? var temp = arrXHR.length;
? ? ? ? ? ? for (var i=0;i<temp;i++) {
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? //创建XMLHttpRequest对象
? ? ? ? ? ? ? ? ? ? xhr = new ActiveXObject(arrXHR[i]);
? ? ? ? ? ? ? ? ? ? //如果创建XMLHttpRequest对象成功,则跳出循环
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? catch(ex) {
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? //判断浏览器是否将XMLHttpRequest作为本地对象实现,针对IE7,Firefox,Opera等浏览器
? ? ? ? else if(window.XMLHttpRequest) {
? ? ? ? ? ? xhr = new XMLHttpRequest();
? ? ? ? }
? ? }
? ? //响应XMLHttpRequest对象状态变化的函数
? ? function httpStateChange() {
? ? ? ? if (xhr.readyState==4) {//异步调用完毕
? ? ? ? ? ? if (xhr.status==200 || xhr.status==0) {//异步调用成功,在本机上调试
? ? ? ? ? ? ? ? //获得服务器返回的数据
? ? ? ? ? ? ? ? var Names = xhr.responseText;

//把获取到的一个字符串分割成字符串数组。
? ? ? ? ? ? ? ? var arrName = Names.split(";");
? ? ? ? ? ? ? ? //定义一个变量,用于判断用户名是否已经存在
? ? ? ? ? ? ? ? var Flag = false;
? ? ? ? ? ? ? ? for(i=0;i<arrName.length;i++) {
? ? ? ? ? ? ? ? ? ? if (arrName[i]== Form.Name.value) {
? ? ? ? ? ? ? ? ? ? ? ? Flag = true;//用户名存在
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? //合法性验证提醒
? ? ? ? ? ? ? ? var OWarn = document.getElementById("Warn");
? ? ? ? ? ? ? ? if (Flag) {
? ? ? ? ? ? ? ? ? ? OWarn.innerHTML = "您输入的用户名已存在,请重新输入!";
? ? ? ? ? ? ? ? ? ? Form.Btn.disabled = true;//提交按钮不可用
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else {
? ? ? ? ? ? ? ? ? ? OWarn.innerHTML = "合法用户名";
? ? ? ? ? ? ? ? ? ? Form.Btn.disabled = false;//提交按钮可用
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? //校验用户名是否有效
? ? function check() {
? ? ? ? //创建XMLHttpRequest对象,调用前面定义好的函数
? ? ? ? CreatXHR();
? ? ? ? if (xhr!=null) {
? ? ? ? ? ? //创建响应XMLHttpRequest对象状态变化的函数
? ? ? ? ? ? xhr.onreadystatechange = httpStateChange;
? ? ? ? ? ? //创建http请求
? ? ? ? ? ? xhr.open("get","Readme.txt", true);
? ? ? ? ? ? //发送http请求
? ? ? ? ? ? xhr.send(null);
? ? ? ? }
? ? ? ? else {
? ? ? ? ? ? alert("浏览器不支持XMLHTTP");
? ? ? ? }
? ? }
</script>
</head>
<body>
<div class="abc" style="margin-top: 60px;margin-left:90px;">
? ? <h3>ajax异步访问局部刷新</h3>
? ? <form name="Form">
? ? ? ? 用户名: <input type="text" name="Name" οnblur="check()">
? ? ? ? <br>
? ? ? ? 密 码: <input type="text" name="Password"><br>
? ? ? ? <input type="submit" value=" 提交" name="Btn" >
? ? </form>
</div>
</body>

</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:34:41  更:2021-08-23 16:38:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:18:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码