一、什么是ajax:(只刷新局部页面的技术)

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 Ajax并不是一种全新的技术,而是整合了几种现有的技术:javascript、xml、css。使用Ajax的好处是提供友好的用户体验,只刷新局部页面,有效利用带宽等。其特点是不刷新整个页面。

异步:发送请求后不等返回结果,继续做别的事情,由回调函数处理结果

JavaScript :通过XMLHttpRequest对象向服务器发起请求,获得返回结果,更新页面

XML:封装数据

Css:用于美化页面样式。

二、用途

使用JavaScript从服务器获取数据而不必刷新整个页面

三、怎样使用Ajax

AJAX 遵循Request/Response 模式,这个框架的基本流程为:对象初始化->发送请求->服务器接收->服务器返回->客户端接收->修改客户端页面内容。这个过程是异步进行的。

1、  初始化对象并发出XMLHttpRequest 请求

  1. functionCreateXmlHttpRequest(){
  2. if(window.ActiveXObject){
  3. xmlHttpRequest =newActiveXObject("Microsoft.XMLHTTP");
  4. }elseif(window.XMLHttpRequest){
  5. xmlHttpRequest =newXMLHttpRequest();
  6. }
  7. return xmlHttpRequest;
  8. }
  9. //为了让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 -- 服务器端出错

  1. function haoLeJiaoWo(){
  2. if( xmlHttpRequest.readyState ==4&& xmlHttpRequest.status ==200){
  3. var b = xmlHttpRequest.responseText;
  4. if(b=="true"){
  5. alert("用户名已经存在");
  6. }else{
  7. alert("用户名可以使用");
  8. }
  9. }
  10. }

XMLHttpRequest 对成功返回的信息有两种处理方式:

responseText 将传回的信息当字符串使用;

responseXML 将传回的信息当XML 文档使用,可以用DOM 处理。

整体的函数:

  1. Function check(){
  2. // 发送请求到服务器,判断用户名是否存在
  3. // 请求字符串
  4. var url ="?operate=doCheckUserExists&uname="+uname;
  5. // 1. 创建XMLHttpRequest组件
  6. xmlHttpRequest = createXmlHttpRequest();
  7. // 2.设置回调函数
  8. xmlHttpRequest.onreadystatechange = haoLeJiaoWo;(状态改变时,将要调用的函数的名字)
  9. // 3.初始化XMLHttpRequest组件
  10. xmlHttpRequest.open("GET",url,true);
  11. // 4.发送请求
  12. xmlHttpRequest.send(null);
  13. }
四、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介绍及使用的更多相关文章

  1. django Ajax介绍

    1.Ajax技术 认识ajax之前必须先了解json模块,json(Javascript  Obiect  Notation,JS对象标记)属于一种轻量级的数据交换格式 json的格式来源于js的格式 ...

  2. Ajax介绍

    AJAX AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJA ...

  3. Ajax介绍及爬取哔哩哔哩番剧索引追番人数排行

    Ajax,是利用JavaScript在保证页面不被刷新,页面链接不改变的情况下与服务器交换数据并更新部分网页的技术.简单的说,Ajax使得网页无需刷新即可更新其内容.举个例子,我们用浏览器打开新浪微博 ...

  4. 关于Jquery中ajax介绍

    jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象.大多数情况下你无需直接操作该函数,除非你需 ...

  5. [Ajax系列]Ajax介绍

    Ajax简介: Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. What ? AJAX=异步JavaScript和XML AJAX是一种用于创建快读动态网页的技术 通过在后台语 ...

  6. JQuery AJAX介绍

    new ActiveXObject("Microsoft.XMLHTTP")是IE中创建XMLHttpRequest对象的方法.非IE浏览器中创建方法是new XmlHttpReq ...

  7. Ajax 介绍

    Ajax的关键技术:  异步处理数据 使用XHTML(HTML)和CSS构建标准化的展示层 使用DOM(document object model)进行动态显示和交互 使用XML和XSLT进行数据交换 ...

  8. Unit01: Ajax介绍

    Unit01: Ajax 1. ajax是什么? (asynchronous javascript and xml) ajax是一种用来改善用户体验的技术,本质是利用浏览器提供的一个 特殊对象(XML ...

  9. [TimLinux] JavaScript 原生AJAX介绍

    1. AJAX 异步JavaScript + XML,用于浏览器内部通过前端JavaScript语言操纵,与HTTP服务器进行连接通信的技术. 2. XMLHttpRequest对象 从IE7+,以及 ...

随机推荐

  1. JavaSE----基础语法(方法)

    1.8 方法 1.8.1方法的的定义 定义:完毕特定功能的代码块.在非常多语言里面有函数的定义,而在Java中函数被称为方法. 格式: 修饰符 返回值类型 方法名(參数类型 參数名1,參数类型 參数名 ...

  2. Android官方技术文档翻译——Gradle 插件用户指南(5)

    昨晚把第五章未译完的几句话攻克了.只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章. 本文译自Android官方技术文档<Gradle Plugin User Gu ...

  3. 体验CSDN-Markdown

    文件夹 文件夹 文本格式化练习 一号标题 1一号标题 二号标题 1 11 2 列表的应用 链接 图片 脚注 表格 序列图 流程图 文本格式化练习: 斜体 斜体的文字 使用鼠标,变成斜体文字 使用键盘C ...

  4. Uber的成功绝非偶然

    拥有打造一个初创企业并将其做强做大的梦想并不是难事,困难的是怎样将该梦想变成现实.娱乐媒体行业经常将企业成功的过程进行美化,干净利落的将企业成功前所经历的艰苦时刻进行大刀阔斧的剪裁,让其刚好可以达到拍 ...

  5. XML约束(3)

    本节要点: 了解XML的约束模式 了解DTD 了解Schema 1 了解XML的约束模式 计算机程序在处理XML文档之前,必须能够解析出XML文档的内容中各个元素的相关信息.将解析出来的信息再交给下游 ...

  6. maven安装配置及使用maven创建一个web项目

    今天开始学习使用maven,现在把学习过程中的资料整理在这边. 第一部分.maven安装和配置. http://jingyan.baidu.com/article/295430f136e8e00c7e ...

  7. iOS转场动画封装

    写在前面 iOS在modal 或push等操作时有默认的转场动画,但有时候我们又需要特定的转场动画效果,从iOS7开始,苹果就提供了自定义转场的API,模态推送present和dismiss.导航控制 ...

  8. iOS常见的几种加密方法(base64.MD5.Token传值.系统指纹验证。。加密)

    普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 一. base64加密 base64 编码是现代密码学的基础 基本原理: 原本是 8个bit 一组 ...

  9. 51Nod1203 2012集训队答辩 JZPLCM

    A1339. JZPLCM(顾昱洲) 时间限制:3.0s   内存限制:256.0MB   试题来源 2012中国国家集训队命题答辩 问题描述 给定一长度为n的正整数序列a,有q次询问,每次询问一段区 ...

  10. C# Split用法

    1.用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray= ...