jQuery AJAX应用实例总结


Posted in jQuery onMay 19, 2020

本文实例总结了jQuery AJAX应用。分享给大家供大家参考,具体如下:

AJAX

是指一种创建交互式网页应用的网页开发技术。

AJAX=异步JavaScript和XML(标准通用标记语言的子集)。

AJAX是一种用于创建快速动态网页的技术。

AJAX是一种在无需重新加载整个网页的情况下,能够更新部份网页的技术。

通过在后台与服务器进行少量数据交换,AJAX可以使用网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,也就是:按需更新。

AJAX解析纯文本数据

<script>
 $(document).ready(function() {
  //获取页面中所有a元素中的第一个,并添加点击事件
  document.getElementByTagName('a')[0].οnclick=function() {
   //1、获取XHR对象
   var request = new XMLHttpRequest();
   //2、配置AJAX请求参数:请求类型,请求的URL资源,请求方式,默认为true,即异步
   request.open('GET','URL',true);
   request.open('GET',this.href+'?'+(new Date()),true);//每次请求都是最新数据
   //3、将AJAX请求发送到服务器,GET请求不需要参数,可以传空或null
   request.send();
   //4、AJAX对象的事件属性onreadystatechange,不断监听服务器端的响应
   request.onreadystatechange = function() {
    //当请求状态为4,且响应码为200时,表示服务器响应成功,并返回了用户数据
    if (request.readyState == 4 && request.status == 200) {
     //根据数据类型,更新当前页面中的DOM节点信息
     document.getElementByTagName('h3')[0].innerHTML=request.responseText;
    }
   };
   return false;//取消a元素的默认点击行为
  };
 });
</script>
<body>
 <a href=''></a>
 <h3></h3>
</body>

AJAX访问html文件

<script>
 $(document).ready(function() {
  //获取页面中所有a元素,并添加点击事件
  var aNodes = getElementByTagName('a');
  //获取当前页面需要更新的DOM节点
  var content = getElementById('content');
  //给所有a元素添加点击事件,每个链接都会访问到一个不同的html文件
  for (var i=0;i<aNodes.length;i++) {
   aNodes[i].onclick = function {
    //1、获取XHR对象
   var request = new XMLHttpRequest();
   //2、配置AJAX请求参数:请求类型,请求的URL资源,请求方式,默认为true,即异步
   //request.open('GET','URL',true);
   request.open('GET',this.href+'?'+(new Date()),true);//每次请求都是最新数据
   //3、将AJAX请求发送到服务器,GET请求不需要参数,可以传空或null
   request.send();
   //4、AJAX对象的事件属性onreadystatechange,不断监听服务器端的响应
   request.onreadystatechange = function() {
    //当请求状态为4,且响应码为200时,表示服务器响应成功,并返回了用户数据
    if (request.readyState == 4 && request.status == 200) {
     //根据数据类型,更新当前页面中的DOM节点信息
     document.getElementByTagName('h3')[0].innerHTML=request.responseText;
   }
   return false;//取消a元素的默认点击行为 
  }
  };
 });
</script>
<body>
 <a href='1.html'></a>
 <a href='2.html'></a>
 <a href='3.html'></a>
 <div id='content'></div>
</body>

AJAX访问XML格式数据

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>AJAX---xml</title>
	<script src="jQuery/jquery-1.8.3.min.js"></script>
	<script type="text/javascript">
 $(document).ready(function() {
  //获取页面中所有a元素中的第一个,并添加点击事件
  document.getElementsByTagName('a')[0].οnclick=function() {
   //1、获取XHR对象
   var request = new XMLHttpRequest();
   //2、配置AJAX请求参数:请求类型,请求的URL资源,请求方式,默认为true,即异步
   // request.open('GET','URL',true);
   request.open('GET',this.href+'?='+(new Date()),true);//每次请求都是最新数据
   //3、将AJAX请求发送到服务器,GET请求不需要参数,可以传空或null
   request.send();
   //4、AJAX对象的事件属性onreadystatechange,不断监听服务器端的响应
   request.onreadystatechange = function() {
    //当请求状态为4,且响应码为200时,表示服务器响应成功,并返回了用户数据
    if (request.readyState == 4 && request.status == 200) {
    	var result = request.responseXML;
      //解析当前XML文件中的每个节点数据,保存到对应变量中,XML支持所有DOM操作
    	var name = result.getElementsByTagName('name')[0].childNodes[0].nodeValue;
    	var age = result.getElementsByTagName('age')[0].childNodes[0].nodeValue;
    	var job = result.getElementsByTagName('job')[0].childNodes[0].nodeValue;
     //根据数据类型,更新当前页面中的DOM节点信息
     document.getElementById('name').innerHTML=name;
     document.getElementById('age').innerHTML=age;
     document.getElementById('job').innerHTML=job;
    }
   };
   return false;//取消a元素的默认点击行为
  };
 });
	</script>
</head>
<body>
	<a href="1.xml" rel="external nofollow" >我的信息</a>
	<div>
		<p id='name'></p>
		<p id='age'></p>
		<p id='job'></p>
	</div>
</body>
</html>

xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<info>
	<name>Zhang</name>
	<age>28</age>
	<job>php</job>
</info>

AJAX访问JSON格式数据

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JSON</title>
	<script src="jQuery/jquery-1.8.3.js"></script>
	<script type="text/javascript">
		$(document).ready(function() {
			document.getElementById('btn').onclick = function(event) {
				//第一种
				var data = {
					'name':'zhang',
					'age':'28',
					'hobby':['跑步','睡觉'],
					'job':{
						'php':'Mysql',
						'html':'jQuery'
					}
				};
				//第二种
				var json = '{\
					"name":"zhang",\
					"age":"28",\
					"hobby":["跑步","睡觉"],\
					"job":{\
						"php":"Mysql",\
						"html":"jQuery",\
					}\
				}';
				var data = eval('('+json+')');
				document.getElementById('name').innerHTML=data.name;
				document.getElementById('age').innerHTML=data.age;
				document.getElementById('hobby').innerHTML=data.hobby[1];
				document.getElementById('job').innerHTML=data.job.php;
				//第三种
				var request = new XMLHttpRequest;
				request.open('GET','demo.json',true);
				request.send(null);
				request.onreadystatechange = function() {
					if (request.readyState==4 && request.status==200) {
						var data = JSON.parse(request.responseText);
						document.getElementById('name').innerHTML=data.name;
						document.getElementById('age').innerHTML=data.age;
						document.getElementById('hobby').innerHTML=data.hobby[1];
						document.getElementById('job').innerHTML=data.job.php;
					}
				}
			}
		});
	</script>
</head>
<body>
	<button type="button" name="button" id="btn">我的信息</button>
	<p id="name"></p>
	<p id="age"></p>
	<p id="hobby"></p>
	<p id="job"></p>
</body>
</html>

AJAX访问中的$.ajax()函数

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>$.ajax()</title>
	<script src="jQuery/jquery-1.8.3.min.js"></script>
	<script type="text/javascript">
		$(function() {
			$('#btn').click(function() {
				$.ajax({
					type:'GET',//http的请求方法
					url:'demo.json',//要获取数据的URL
					data:null,//不给URL添加任何数据
					dataType:'json',//将获取到的数据当作JSON类型处理
					success:function(data) {//完成时调用
						$('#name').text(data.name);
						$('#age').text(data.age);
						$('#hobby').text(data.hobby[1]);
						$('#job').text(data.job.php);
					},
					error:function(data) {//失败时调用
						alert('获取失败!');
					}
				});
			});
		});
	</script>
</head>
<body>
	<button type="button" name="button" id="btn">我的信息</button>
	<p id="name"></p>
	<p id="age"></p>
	<p id="hobby"></p>
	<p id="job"></p>
</body>
</html>

AJAX访问中的load()方法

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>get</title>
	<script src="jQuery/jquery-1.8.3.min.js"></script>
<script type='text/javascript'>
 $(function() {
  $('button').click(function() {
   //1、获取纯文本文件的内容
   $('div').load('hello.txt');
 
   //2、获取html文件的内容,可以使用jquery选择器,按需获取
   $('div').load('hello.html');//获取html文件全部内容
   $('div').load('hello.html li:first','?'+(new Date()));//获取第一个li的内容
   $('div').load('hello.html li:eq(2)');/获取索引为2的li内容
   $('div').load('hello.html li:odd','?'+(new Date()));//获取全部li中索引为奇数的内容
   //3、获取XML中的数据,与访问HTML一样,也可以使用选择器
   $('div').load('1.xml');//返回xml,全部同行显示
   $('div').load('1.xml work');//显示指定标签名的数据
   $('div').load('1.xml work',function() {
    $(this).css('color','red');
   });//可以使用回调函数
   
   //4、获取JSON数据,json不能直接使用,必须通过回调函数来进行解析后再使用
   $('div').load('demo.json',function(data) {
    //将获取到的json字符串解析为js对象
    var jsonObj = JSON.parse(data);
    $(this).empty()
    $(this).append('<p>姓名:<span>'+jsonObj.name"'</span></p>')
   });
  });
 });
	</script>
</head>
<body>
	<button type="button" name="button">测试</button>
	<div id="con"></div>
</body>
</html>

AJAX访问中的$.get()方法

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>get</title>
	<script src="jQuery/jquery-1.8.3.min.js"></script>
	<script type="text/javascript">
		$(function() {
			$('button').click(function(event) {
				//1、从服务器中返回纯文本或html
				$.get('1.php',function(data) {
					$('#con').html(data);
				});
				//2、服务器返回XML格式数据
				$.get('1.php',function(data) {
					//将XML数据转为jQuery对象,并获取内部的数据
					var name = $(data).children('name').text();
					//将解析出的数据拼接成需要显示的html代码
					var html = '<p>'+name+'</p>';
					//将html代码插入到指定节点
					$('#con').html(html);
				});
				//3、服务器返回JSON格式数据
				$.get('1.php',function(data) {
					var jsonObj = JSON.parse(data);//返回一个JSON格式字符串,需要先解析成JS对象
					$('#con').empty().append('<p>姓名:'+jsonObj.name+'</p>');
				});
			});
		});
	</script>
</head>
<body>
	<button type="button" name="button">测试</button>
	<div id="con"></div>
</body>
</html>

1.php:

<?php
 echo 'hello world!';//纯文本
 
//XML格式数据
echo <<<'XML'
	<?xml version="1.0" encoding="UTF-8" ?>
 <info>
 	<name>Zhang</name>
 	<age>28</age>
 	<job>php</job>
 </info>
XML;
 
//JSON格式数据
echo '{"name":"zhang","age":"28","hobby":["跑步","睡觉"],"job":{"php":"Mysql","html":"jQuery"}}';
?>

AJAX中的$.getJSON()函数

<script>
 $.getJson('1.php',function(data) {
  $('#con').empty().append('<p>姓名:'+data.name+'</p>');
 });
</script>

AJAX中的$.post()方法

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>post</title>
	<script src="jQuery/jquery-1.8.3.min.js"></script>
	<script type="text/javascript">
		$(function() {
			$('#name').change(function(event) {
				$.post(
					'check.php',
					{
						'name':$(this).val()
					},
					function(data) {
						console.log(data);
						$('#name').next().empty();
						$('#name').after(data);
					}
				);
			});
 
			$('#sub').click(function(event) {
				var name = $('#name').val();
				if ('' == name && null == name) {
						$('#name').after('<span>用户名不能为空</span>');
						return false;
					}
			});
		});
	</script>
</head>
<body>
	<form action="" method="post">
		姓名:<input type="text" name="name" value='' id='name'><br/>
		密码:<input type="password" name="password" value="" id='ps'><br>
		<input type="submit" name="" value='提交' id='sub'>
		<input type="reset" name="">
	</form>
</body>
</html>

check.php

<?php
$info = $_POST;
 
$name = isset($info['name']) ? $info['name'] : '';
$arr_name = ['zhang','li'];
if (!empty($name) && in_array($name, $arr_name)) {
	echo '<script>alert("名称已存在");window.history.back(-1);</script>';
} elseif (empty($name)) {
	echo '<script>alert("不可为空");window.history.back(-1);</script>';
} else {
	echo '<span style="color:blue">名称可用</span>';
}
?>

更多关于jQuery相关内容可查看本站专题:《jquery中Ajax用法总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery常见经典特效汇总》及《jquery选择器用法总结》

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
jquery实现企业定位式导航效果
Jan 01 jQuery
jQuery.validate.js表单验证插件的使用代码详解
Oct 22 jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
JQuery事件委托原理与用法实例分析
May 13 jQuery
jquery向后台提交数组的代码分析
Feb 20 jQuery
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
jquery+css3实现的经典弹出层效果示例
May 16 #jQuery
JQuery事件冒泡和默认行为代码实例
May 13 #jQuery
JQuery表单元素取值赋值方法总结
May 12 #jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 #jQuery
jQuery三组基本动画与自定义动画操作实例总结
May 09 #jQuery
基于JQuery实现页面定时弹出广告
May 08 #jQuery
JQuery复选框全选效果如何实现
May 08 #jQuery
You might like
综合图片计数器
2006/10/09 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
php 邮件发送问题解决
2014/03/22 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
python基础教程之分支、循环简单用法
2016/06/16 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
荷兰本土平价百货:HEMA
2017/10/23 全球购物
党风廉政建设责任书
2014/04/14 职场文书
电影开国大典观后感
2015/06/04 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
Python爬取某拍短视频
2021/06/11 Python
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
python数字图像处理之图像的批量处理
2022/06/28 Python