了解一下ajax
AJAX:是一种无需重新加载页面的情况下能够更新部分(局部更新)网页的技术。
1. 概念:ASychronous JavaScript And XML 异步的JavaScript和XML
首先了解一下异步和同步的区别。
异步:客户端发送请求到服务器,无论服务器是否返回响应,客户端都可以随意做其他的事情,中间的过程并不影向其他操作。
同步:客户端发送请求给服务器端,当服务器返回响应之前,客户端在此期间什么事情都不可以做,只能处于等待状态(卡死)。
- AJAX运行原理
页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回 给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面1 功能。
实现方式:
1.js实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js实现ajax</title>
<script>
function fun() {
var ajaxServlet;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
ajaxServlet=new XMLHttpRequest();
}
else
{// code for IE6, IE5
ajaxServlet=new ActiveXObject("Microsoft.XMLHTTP");
}
ajaxServlet.onreadystatechange=function(){
if(ajaxServlet.readyState==4){//代表已接收后台数据,这时进行数据处理
var result = ajaxServlet.responseText;
var mydiv = document.getElementById("mydiv");
mydiv.innerHTML=result;
}
}
//建立连接 第一个参数是请求方式,第二个是URL,第三个参数true代表异步,false同步
ajaxServlet.open("GET","ajaxServlet?username=jerry",true);
//发送xmlhttp请求
ajaxServlet.send();
}
</script>
<style>
#mydiv{
border: 1px solid black;
width: 120px;
height: 50px;
}
</style>
</head>
<body>
<input type="button" value="发送异步请求" onclick="fun();"><br/>
<div id="mydiv">
</div>
</body>
</html>
XMLHttpRequest 对象用于和服务器交换数据。
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
异步 - True 或 False?
AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true;例如:
xmlhttp.open("GET","ajax_test.asp",true);
不推荐使用 async=false,但是对于一些小型的请求,也是可以的。
JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。
注释:当您使用 async=false 时,请不要编写 onreadystatechange 函数 - 把代码放到 send() 语句后面即可:
xmlhttp.open("GET","test1.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
onreadystatechange 事件
当请求被发送到服务器时,我们需要执行一些基于响应的任务。
每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 属性存有 XMLHttpRequest 的状态信息

2.jQuery实现
1. $.ajax({key1:value1,key2:value2,....})方法
常用的一些选项:async:true,代表异步处理,默认就是true,URL:“资源路径”,data:{参数1=“值1”...},dataType:"json",参数返回类型,type:post/get,提交方式,success:function(){};响应成功后执行的函数,error:function(){},响应失败执行的函数。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery_ajax2</title>
<script src="js/jquery-1.11.3.min.js"></script>
<script>
function fun(){
$.ajax({
url:"ajax",
data:{"content":"今天天气真不好!","name":"margin"},
async:"true",//默认为true,异步
type:"post",//默认get提交
dataType:"text",//返回类型
success:function (data) {
document.getElementById("div1").innerHTML = data;
},//响应成功,执行success
error:function () {
var div1 = document.getElementById("div1");
div1.innerHTML="服务器忙碌中,请稍后重试!";
}//执行失败,error对应的函数执行
})
}
</script>
<style>
#div1{
width: 220px;
height: 150px;
border: 2px solid black;
}
</style>
</head>
<body>
<input type="button" value="发送异步请求" onclick="fun();"><br/>
<div id="div1">
</div>
</body>
</html>
2.$.get(url,data,callback,type); 第一个参数是访问的地址,第二个参数是传递的参数,第三个参数是写执行成功后的回调函数,第四个代表服务器返回的参数文本类型,常用的有json,text等。
function fun() {
$.get("ajaxServlet",{username:"tom"},function (name) {
alert(name);
},"text");
}
3.$.post(url,data,callback,type);jQuery通过post方法实现AJAX的方式和get方法相似,两者除了提交数据的方式不同,其余的使用方式基本一样。
function fun() {
$.post(
"ajaxServlet",
{username:"tom"},
function (name) { alert(name); },
"text");
}
了解一下ajax的更多相关文章
- jQuery之ajax实现篇
jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...
- Ajax及跨域
概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- ABP文档 - Javascript Api - AJAX
本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...
- ajax异步请求
做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...
- 调用AJAX做登陆和注册
先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...
- Ajax 概念 分析 举例
Ajax是结合了访问数据库,数据访问,Jquery 可以做页面局部刷新或者说是页面不刷新,我可以让页面不刷新,仅仅是数据的刷新,没有频繁的刷页面,是现在比较常用的一种方式做页面那么它是怎么实现页面无刷 ...
- ajax
常见的HTTP状态码状态码:200 请求成功.一般用于GET和POST方法 OK301 资源移动.所请求资源移动到新的URL,浏览器自动跳转到新的URL Moved Permanently304 未修 ...
- 学习笔记之MVC级联及Ajax操作
由于刚转型到MVC,MVC的架构模式很多不是很清楚,比如今天就想做个级联的操作,因为之前的ASP.NET的方式是通过:控件-->添加事件-->后台编写级联事件进行触发,但是这个MVC就不同 ...
- javascript表单的Ajax 提交插件的使用
Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...
随机推荐
- 记一道好VAN的数学题
2020.4.12 Solution 首先发掘几个性质: \(99\) 个点可以分成 \(33\) 组,每组中个\(3\) 个点组成等边三角形.两两端点相差 \(33\) 条弧. 任意状态下,已经染完 ...
- MySQL技术内幕InnoDB存储引擎(二)——InnoDB存储引擎
1.概述 是一个高性能.高可用.高扩展的存储引擎. 2.InnoDB体系架构 InnoDB存储引擎主要由内存池和后台线程构成. 其中,内存池由许多个内存块组成,作用如下: 维护所有进程和线程需要访问的 ...
- linux 上安装部署python
一般在linux中使用python 需要安装pyenv 进行版本控制 因为linux6.9自带的Python是2.6的 同时很多命令都是基于2.6开发的 所以系统环境不能改 我们要开发 只能用pyen ...
- 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建
主要内容: 1.Docker与Kubernetes的关系 2.SpringBoot微服务的Docker镜像创建 3.Kubernetes本地环境搭建 一.Docker与Kubernetes的关系 在说 ...
- Windows脚本转换Liunx识别并执行
1.执行安装: yum install -y dos2unix 插件2.执行 dos2unix test.sh3.赋值权限 chmod +x test.sh
- 揭开DRF序列化技术的神秘面纱
在RESTful API中,接口返回的是JSON,JSON的内容对应的是数据库中的数据,DRF是通过序列化(Serialization)的技术,把数据模型转换为JSON的,反之,叫做反序列化(dese ...
- 面试 HTTP和HTML 浏览器
HTTP和HTML 浏览器 #说一下http和https #参考回答: https的SSL加密是在传输层实现的. (1)http和https的基本概念 http: 超文本传输协议,是互联网上应用最为广 ...
- post 和php://input
$_POST['paramName'] 获取通过表单(multipart/form-data)提交的数据.但有时客户端会直接将请求数据以字符串的形式都放到 body 里传递过来,那么服务端就需要使用 ...
- phaser3入门教程-从零开始开发一个打砖块游戏
项目代码 项目代码 体验一下 空格开始,左右箭头控制移动 体验一下 Phaser简介 Phaser是一个HTML5游戏框架.它使用了许多HTML5 API,例如Canvas,WebGL,Audio,G ...
- Spring AOP 实战运用
Spring AOP 实战 看了上面这么多的理论知识, 不知道大家有没有觉得枯燥哈. 不过不要急, 俗话说理论是实践的基础, 对 Spring AOP 有了基本的理论认识后, 我们来看一下下面几个具体 ...