ajax

1.什么是ajax?(异步请求,局部刷新)

ajax是一个改善用户体验的技术,实质上是利用浏览器端ajax对象()向服务器发送异步(ajax对象在向服务器发送请求的时候,用户可以继续其他操作)请求,服务器返回的text或者xml类型的数据,浏览器根据返回的数据,对页面进行局部刷新。

在整个过程中,不会中断用户的操作,体验度好。

2.如何获取ajax对象?

非IE    new XMLHttpRequest();

IE    new ActiveXObject("Microsoft.XMLHttp");

3.ajax向服务器发送请求

(asynchronous JavaScript and xml)

-----发送get请求---------

1)获取ajax对象

var xhr=getXhr();

2)注册监听器

xhr.onreadystatechange

3)初始化

xhr.open('get','CheckUname.do',true);

'get':请求类型、

'checkUname.do':请求地址

'true':发送异步请求

'false';发送同步请求

ajax向服务器发送请求,在服务器返回响应之前,用户必须等待,如果服务器响应的时间过长,页面出现锁死状态,用户体验度不好

4)真正发送请求

xhr.send(null);

*ajax对象的重要属性:

1)onreadystatechange:注册一个监听器(绑定一个事件函数)

2)readyState:返回对象与服务器的状态

返回一个值,含义如下:

  0:未初始化,对象已经建立,但是还没有调用open方法

  1:初始化,对象已经建立,但是没有调用send方法

  2:发送数据,send方法已调用

  3:数据传送中,服务器已经接受了部分数据

  4:响应结束,浏览器接受了所有数据

3)responseText:获取服务器返回的文本

4)responseXML:获取服务器返回的XML dom对象

5)status:获取状态码

200 405 404

若ajax发送的是get请求,IE浏览器存在以下问题

1)如果请求地址没有发生改变,那么IE不会真正向服务器发送请求,返回的是上一次请求服务器的数据(被IE缓存了)

  解决方法一:给地址后面加时间戳

var url="checkUname.do?uname="+$("[name=uname]").val()+"&"+new Date().getTime();
xhr.open('get',url,true);

2)参数中文乱码问题

解决方法:

  step1.Tomcat/conf/server.xml中编码格式是UTF-8

  step2.encodeURI(url)    将地址中的中文以utf-8的格式转成对应的字节 

 解决方法二:发送post请求

----发送post请求---

1)获取ajax对象

2)同(get)

3)初始化

xhr.open('post','checkUname.do',true);

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  (这句话不能省)

4)真正发送请求

xhr.send("uname="+uname);

练习:省市联动

Ajax棵的更多相关文章

  1. Hawk 3.1 动态页面,ajax,瀑布流

    不少朋友反映,Hawk的手气不错,好像没法处理动态页面.其实很容易,比其他软件都容易,让我慢慢道来. 1. 什么是动态页面 很多网站,在刷新的时候会返回页面的全部内容,但实际上只需要更新一部分,这样可 ...

  2. 异步请求Ajax

    AJAX:Asynchronous JS And XML,包括HTML.CSS.JS.DOM.XML.JSON等,客户端技术范畴.主要目标:发起异步请求/响应,实现页面内容的局部刷新,提高浏览体验:实 ...

  3. 原生态AJAX详解和jquery对AJAX的封装

    AJAX: A :Asynchronous [eI`sinkrenes] 异步 J :JavaScript    JavaScript脚本语言 A: And X :XML 可扩展标记语言 AJAX现在 ...

  4. jquery中ajax的使用

    Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进 ...

  5. AJAX文档

    AJAX 文档 AJAX开发简略.................................................................................... ...

  6. ajax异步请求不能刷新数据的问题

    搞了两三天的问题,今天解决了.总结下: function reportGrpChange(cuid, title){ document.getElementById('reportFrameDiv') ...

  7. 哈佛大学构建动态网站--第七讲ajax

    Ajax ajax举例: DOM的结构 通过js来修改html页面. Ajax的含义: return false的用途 跨浏览器的ajax 为什么不直接从yahoo获得数据呢? XMLHttpRequ ...

  8. Ajax获取数据的几种格式和解析方式

    一.什么是ajax  AJAX的全称是Asynchronous JavaScript and XML(是异步的 javascript 和 XML).  ajax不是新的编程语言,而是一种使用现有标准的 ...

  9. 关于AJAX异步请求的那些事儿(2)

    1.使用AJAX发起GET请求消息 xhr.open("GET","XX.PHP?K1=V1$K2=V2",true); xhr.send(null); 2.使 ...

随机推荐

  1. Android.mk(3) 宏

    https://www.jianshu.com/p/7c20b299ee63 传统上我们一直称这种东西为makefile中的变量,其实本质上就是一个宏,只是做的是字符串替换.我们何如就把它叫做宏呢. ...

  2. android studio下生成jni头文件

    cd app/src/main javah -d jni -classpath ../../build/intermediates/classes/debug net.sourceforge.lame ...

  3. stdarg.h头文件源代码分析

    谈到C语言中可变参数函数的实现(参见C语言中可变参数函数实现原理),有一个头文件不得不谈,那就是stdarg.h 本文从minix源码中的stdarg.h头文件入手进行分析: #ifndef _STD ...

  4. C程序设计语言习题(3-3)

    编写函数expand(s1,s2), 将字符串s1中类似于a-z一类的速记符号在字符串s2中扩展为等价的完整列表abc……xyz.该函数可以处理大小写字母和数字,并可以处理a-b-c.a-z0-9与a ...

  5. mysql rowid实现

    ) a, b b表是数据表

  6. C 语言实现增量式PID

    一直以来,pid都是控制领域的经典算法,之前尝试理解了很久,但还是一知半解,总是不得要领,昨天模仿着别人的代码写了一个增量式pid的代码. 我的理解就是pid其实就是对你设置的预定参数进行跟踪.在控制 ...

  7. 判断强联通图中每条边是否只在一个环上(hdu3594)

    hdu3594 Cactus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  8. CmD空格转义的三种方法,总有一种会解决问题

    CmD空格转义 在cmd中,如果路径中存在空格报错 可以有三种解决方法: 1.将存在空格的路径用双引号包起来,如:"D:/Program Files/xx"; 2.将存在空格的名称 ...

  9. 7.18 python进程间数据共享

    # 管道# 数据共享 Manager# 进程池和回调函数 ! # !/usr/bin/env python # !--*--coding:utf-8 --*-- # !@Time :2018/7/18 ...

  10. failed to register esriAddin

    ArcGIS AddIN开发遇到此种异常,目前有两种错误的可能:(1)项目名称好像不能为中文名,如果为中文名,请改正 (2)在Config.esriAddinx配置文件中,存在如下代码 <Tar ...