Ajax棵
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棵的更多相关文章
- Hawk 3.1 动态页面,ajax,瀑布流
不少朋友反映,Hawk的手气不错,好像没法处理动态页面.其实很容易,比其他软件都容易,让我慢慢道来. 1. 什么是动态页面 很多网站,在刷新的时候会返回页面的全部内容,但实际上只需要更新一部分,这样可 ...
- 异步请求Ajax
AJAX:Asynchronous JS And XML,包括HTML.CSS.JS.DOM.XML.JSON等,客户端技术范畴.主要目标:发起异步请求/响应,实现页面内容的局部刷新,提高浏览体验:实 ...
- 原生态AJAX详解和jquery对AJAX的封装
AJAX: A :Asynchronous [eI`sinkrenes] 异步 J :JavaScript JavaScript脚本语言 A: And X :XML 可扩展标记语言 AJAX现在 ...
- jquery中ajax的使用
Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进 ...
- AJAX文档
AJAX 文档 AJAX开发简略.................................................................................... ...
- ajax异步请求不能刷新数据的问题
搞了两三天的问题,今天解决了.总结下: function reportGrpChange(cuid, title){ document.getElementById('reportFrameDiv') ...
- 哈佛大学构建动态网站--第七讲ajax
Ajax ajax举例: DOM的结构 通过js来修改html页面. Ajax的含义: return false的用途 跨浏览器的ajax 为什么不直接从yahoo获得数据呢? XMLHttpRequ ...
- Ajax获取数据的几种格式和解析方式
一.什么是ajax AJAX的全称是Asynchronous JavaScript and XML(是异步的 javascript 和 XML). ajax不是新的编程语言,而是一种使用现有标准的 ...
- 关于AJAX异步请求的那些事儿(2)
1.使用AJAX发起GET请求消息 xhr.open("GET","XX.PHP?K1=V1$K2=V2",true); xhr.send(null); 2.使 ...
随机推荐
- 报错---“node install.js”
如图 解决方案: 目录中执行 npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromed ...
- 题目1004:Median(qsort函数自定义cmp函数)
题目链接:http://ac.jobdu.com/problem.php?pid=1004 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...
- jenkins部署war包到远程服务器的tomcat
一.目的 jenkins上将war包,部署到远程服务器的tomcat上. 这边tomcat在windows 主机A上,版本apache-tomcat-8.5.23. jenkins在主机B上,cent ...
- testmath
$\Huge ans = \frac{ \sum\limits_{i=1}^{m}{ (x_i - \bar{x})^2 } }{m} \cdot m^2 \\$
- 安卓使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)
继续在网上搜索安卓按键模拟(其实那时都不知道用什么关键字好了,能想到的关键字都用遍了,但是搜索出来的结果,都是之前提到的那几个依赖源码环境和系统权限的方案).发现有很多介绍ADB调试,向手机发送按键事 ...
- nginx中实现把所有http的请求都重定向到https
在网站启用https之后,我们可能会有一个需求,就是将所有的http的请求自动地重定向到https, 如果前端是使用的nginx来实现的https,我们可以这样配置nginx的301重定向: serv ...
- linux系统下网络主-备份策略之网卡bond技术
操作系统:CentOS Linux release 7.1.1503 (Core) 网卡适配器: eno1.eno2 bonding类型:mode=1 (active-backup),主-备份策略 网 ...
- javap(反汇编命令)详解
javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码.通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作. 语法: javap [ 命令选项 ] class. . ...
- Core Data 迁移与版本管理
原文 http://chun.tips/blog/2014/11/28/core-data-ban-ben-qian-yi-jing-yan-zong-jie/ 主题 Core DataiOS开发 ...
- Python之时间模块
1,怎么打印时间戳 2,怎么打印日期 3,怎么把字符串转换成python认识的日期 把日期转换成字符串 字符串转换成日期格式 time.strptime("2017-5-16",& ...