ajax介绍及使用
一、什么是ajax:(只刷新局部页面的技术)
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 Ajax并不是一种全新的技术,而是整合了几种现有的技术:javascript、xml、css。使用Ajax的好处是提供友好的用户体验,只刷新局部页面,有效利用带宽等。其特点是不刷新整个页面。
异步:发送请求后不等返回结果,继续做别的事情,由回调函数处理结果
JavaScript :通过XMLHttpRequest对象向服务器发起请求,获得返回结果,更新页面
XML:封装数据
Css:用于美化页面样式。
二、用途
使用JavaScript从服务器获取数据而不必刷新整个页面
三、怎样使用Ajax
AJAX 遵循Request/Response 模式,这个框架的基本流程为:对象初始化->发送请求->服务器接收->服务器返回->客户端接收->修改客户端页面内容。这个过程是异步进行的。
1、 初始化对象并发出XMLHttpRequest 请求
functionCreateXmlHttpRequest(){
if(window.ActiveXObject){
xmlHttpRequest =newActiveXObject("Microsoft.XMLHTTP");
}elseif(window.XMLHttpRequest){
xmlHttpRequest =newXMLHttpRequest();
}
return xmlHttpRequest;
}
- //为了让Javascript 可以向服务器发送HTTP 请求,必须使用XMLHttpRequest 对象。各个浏览器对这个实例化过程的实现方式不同。IE 以ActiveX 控件的形式提供,而Mozilla 等浏览器则直接以XMLHttpRequest 类的形式提供
2、指定响应处理函数
指定当服务器返回信息时客户端的处理方式,相应的处理函数名称赋给XMLHttpRequest 对象的onreadystatechange属性。
例如:xmlHttpRequest.onreadystatechange=haolejiaowo;
3、发出HTTP 请求
指定响应处理函数之后,就可以向服务器发出HTTP 请求。这一步调用XMLHttpRequest 对象的open 和send 方法。
xmlHttpRequest.open("GET",url,true);
xmlHttpRequest.send(null);
open 的第一个参数是HTTP 请求的方法,为Get、Post或者Head。
open 的第二个参数是目标URL。
open 的第三个参数只是指定在等待服务器返回信息的时间内是否继续执行下面的代码。如果为True,则不会继续执行,直到服务器返回信息。默认为True。
4、处理服务器返回的信息
首先,它要检查XMLHttpRequest 对象的readyState 值,判断请求的当前状态。服务器返回信息后,还需要判断返回的HTTP 状态码,确定返回的页面没有错误。
所有的状态码都可以在W3C 的官方网站上查到,http状态码
请求状态:
0 -- 未初始化
1 -- 初始化
2 -- 发送请求
3 -- 开始接受结果
4 -- 接受结果完毕,信息已经返回,可以开始处理
每次状态改变都会调这个函数
HTML返回码:
200 – OK,代表页面正常
404 -- Not found(没有找到资源)
500 -- 服务器端出错
function haoLeJiaoWo(){
if( xmlHttpRequest.readyState ==4&& xmlHttpRequest.status ==200){
var b = xmlHttpRequest.responseText;
if(b=="true"){
alert("用户名已经存在");
}else{
alert("用户名可以使用");
}
}
}
XMLHttpRequest 对成功返回的信息有两种处理方式:
responseText 将传回的信息当字符串使用;
responseXML 将传回的信息当XML 文档使用,可以用DOM 处理。
整体的函数:
Function check(){
// 发送请求到服务器,判断用户名是否存在
// 请求字符串
var url ="?operate=doCheckUserExists&uname="+uname;
// 1. 创建XMLHttpRequest组件
xmlHttpRequest = createXmlHttpRequest();
// 2.设置回调函数
xmlHttpRequest.onreadystatechange = haoLeJiaoWo;(状态改变时,将要调用的函数的名字)
// 3.初始化XMLHttpRequest组件
xmlHttpRequest.open("GET",url,true);
// 4.发送请求
xmlHttpRequest.send(null);
}
四、Ajax缓存
ajax缓存:当再次请求同一url时,浏览器会直接取出缓存里的内容返回,而不向服务器端发送请求.这只有在提交方式使用get时才会发生,解决方法是在url后面加上一个参数来告诉浏览器这是一个新的请求,通常可以用new Date()来生成时间戳。而post方式提交每次都会向服务器发送请求,不要考虑缓存.
解决方法如下:
方法1:
在js中添加代码
Js代码
xmlhttp.setRequestHeader("If-Modified-Since","0");
方法2:
在jsp中response设置
Java代码
response.setHeader("Cache-Control", "no-cache, must-revalidate");
方法3:
在url后面加上获取本地时间的参数
ajax介绍及使用的更多相关文章
- django Ajax介绍
1.Ajax技术 认识ajax之前必须先了解json模块,json(Javascript Obiect Notation,JS对象标记)属于一种轻量级的数据交换格式 json的格式来源于js的格式 ...
- Ajax介绍
AJAX AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJA ...
- Ajax介绍及爬取哔哩哔哩番剧索引追番人数排行
Ajax,是利用JavaScript在保证页面不被刷新,页面链接不改变的情况下与服务器交换数据并更新部分网页的技术.简单的说,Ajax使得网页无需刷新即可更新其内容.举个例子,我们用浏览器打开新浪微博 ...
- 关于Jquery中ajax介绍
jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象.大多数情况下你无需直接操作该函数,除非你需 ...
- [Ajax系列]Ajax介绍
Ajax简介: Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. What ? AJAX=异步JavaScript和XML AJAX是一种用于创建快读动态网页的技术 通过在后台语 ...
- JQuery AJAX介绍
new ActiveXObject("Microsoft.XMLHTTP")是IE中创建XMLHttpRequest对象的方法.非IE浏览器中创建方法是new XmlHttpReq ...
- Ajax 介绍
Ajax的关键技术: 异步处理数据 使用XHTML(HTML)和CSS构建标准化的展示层 使用DOM(document object model)进行动态显示和交互 使用XML和XSLT进行数据交换 ...
- Unit01: Ajax介绍
Unit01: Ajax 1. ajax是什么? (asynchronous javascript and xml) ajax是一种用来改善用户体验的技术,本质是利用浏览器提供的一个 特殊对象(XML ...
- [TimLinux] JavaScript 原生AJAX介绍
1. AJAX 异步JavaScript + XML,用于浏览器内部通过前端JavaScript语言操纵,与HTTP服务器进行连接通信的技术. 2. XMLHttpRequest对象 从IE7+,以及 ...
随机推荐
- ettercap的中间人欺骗+sslstrip过滤掉https协议
环境准备:kali系统 因为kali系统自带ettercap,比较方便, 不需要安装 ifcofing命令查看当前网关 ,当前的IP是: 172.16.42.1 查找局域网所有主机 通过netdisc ...
- Linux----CentOS-7搭建免流服务器
本次实验采用腾讯云服务器:https://cloud.tencent.com/ 大学生身份的可以看看有没有什么活动购买 其他身份的78一个月 关于腾讯云服务器的使用可以看看腾讯云的使用手册 本博客涉及 ...
- Express4.x API (四):Router (译)
Express4.x API 译文 系列文章 Express4.x API (一):application (译) -- 进行 Express4.x API (二):request (译) -- 完成 ...
- 关于O(logN)的正确理解
学计算机的或许对O(logN)这个符号并不陌生,快排.堆排.归并等等排序的平均时间复杂度. 问题来了,之前一直有个歧义就是:logN的底数到底是多少? 这个问题搁置着并没有去深究,仅仅是想应该是2吧. ...
- 【转】Spring Bean单例与线程安全
一.Spring单例模式及线程安全 Spring框架中的Bean,或者说组件,获取实例的时候都是默认单例模式,这是在多线程开发的时候需要尤其注意的地方. 单例模式的意思是只有一个实例,例如在Sprin ...
- 自学Python3.2-函数分类
函数的分类 内置函数,自定义函数,匿名函数 一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html ...
- 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据
§ 封装网络请求及 mock 数据 本文配套视频地址: https://v.qq.com/x/page/i05544fogcm.html 开始前请把 ch2-3 分支中的 code/ 目录导入微信开发 ...
- VM环境下Linux虚拟机扩展存储空间操作方法总结
用VMwareware虚拟机安装的 Linux 系统剩余空间不足,造成软件无法正常安装.如果重新装一遍系统就需要重新配置好开发环境和软件的安装配置. 一.空间扩展 (1)打开VMware,选择Edi ...
- http中的get和post(二)
博客园精华区有篇文章< GET 和 POST 有什么区别?及为什么网上的多数答案都是错的 >,文中和回复多是对以下两个问题进行了深究: 长度限制 Url 是否隐藏数据 在我看来这两者都不是 ...
- JavaWeb之数据源连接池(1)---DBCP
何为数据源呢?也就是数据的来源.我在前面的一篇文章<JavaWeb之原生数据库连接>中,采用了mysql数据库,数据来源于mysql,那么mysql就是一种数据源.在实际工作中,除了mys ...