JavaScript实现Ajax小结
置顶文章:《纯CSS打造银色MacBook Air(完整版)》
上一篇:《TCP的三次握手和四次挥手》
作者主页:myvin
博主QQ:851399101(点击QQ和博主发起临时会话)
::selection{ background:blue; color:red; } span{ color:red; }
JavaScript实现Ajax小结
Ajax大家应该都很熟悉,在此总结一下备忘。
至于Ajax的优点就不多说了,实现动态刷新,提升用户体验,缺点也还不少,比如破坏了浏览器的back功能,同一个URL打开的界面并不是完全相同,还有安全性能等方面,但是这些也阻挡不了我们使用Ajax的脚步~~~
这里以表单为例说一下实现Ajax的步骤:
- 先从表单中获取我们需要的数据
- 然后建立相应的URL
- 设置onreadystatechange函数
- 打开连接
- 发送请求
以上就是Ajax的实现步骤,接下来简单分步总结下。
首先是关于xrh对象的建立。
function creatXhr(){
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject("Microsoft.xhr");
}
}
稍完整的可以这样写:
function creatXhr(){
var xhr=null;
try{
xhr=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try {
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e2){
xhr=false;
}
}
if(!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xhr=new XMLHttpRequest();
}
}
以上对ie和非ie浏览器多做了兼容处理。
然后就该发送Ajax请求了,下面以一个表单项country为例:
function callReqest(){
var country=document.getElementById('country').value;
if((country==null)||(country==''))
return;
var url='example.php?country='+encodeURIComponent(country);
xhr.onreadystatechange=update;
xhr.open('GET',url,true);
xhr.send(null);
}
以上获取了一个country表单项,onreadystatechange函数是readystate发生变化时触发的事件,可以以此来判断是否需要发生动作。
onreadystatechange函数如下:
function onreadystatechange(){
if((xhr.readystatechange==4)&&((xhr.state==200)||((xhr.state>200)&&(xhr.state<300)))){
document.getElementById('countryCode').value=xhr.responseText;
}
}
在readystatechange等于4的时候,说明资源已然完全下载到客户端了,可以使用了,同时查看状态码,在200到300之间,左闭右开,即可进行刷新,这里只是简单的将responseText给了一个表单项,当然也可以返回XML等相关数据,相关内容可查看其他相关介绍。
最后,至于触发Ajax,可以在表单的country里面添加onChange事件,这样用户在输入表单时就会触发Ajax了。
转载请记得说明作者和出处哦-.-
作者:myvin
原文出处:http://www.cnblogs.com/myvin/p/4865364.html
下一篇:《由外边距合并到BFC》
置顶文章:《纯CSS打造银色MacBook Air(完整版)》
JavaScript实现Ajax小结的更多相关文章
- DOM笔记(五):JavaScript的常见事件和Ajax小结
一.常见事件类型 1.鼠标事件 事件名称 说明 onclick 鼠标单击时触发 ondbclick 鼠标双击时触发 onmousedown 鼠标左键按下时触发 onmouseup 鼠标释放时触发 on ...
- JavaScript的常见事件和Ajax小结
一.常见事件类型 1.鼠标事件 事件名称 说明 onclick 鼠标单击时触发 ondbclick 鼠标双击时触发 onmousedown 鼠标左键按下时触发 onmouseup 鼠标释放时触发 on ...
- JavaScript之Ajax Util
ajax(即:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML))经常在用,却经常忽略了底层的实现机制,今日写个小工具,大家也可拿去使用,如果写 ...
- Javascript本地存储小结
前言 总括:详细讲述Cookie,LocalStorge,SesstionStorge的区别和用法. 人生如画,岁月如歌. 原文博客地址:Javascript本地存储小结 知乎专栏&& ...
- 最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)
其他网站开发相关资料 超强HTML和xhtml,CSS精品学习资料下载汇总 最新htm ...
- 初识JavaScript,Ajax,jQuery,并比较三者关系
一.基本认识 1.JavaScript 定义: javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态 ...
- 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
转http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 ...
- javascript版Ajax请求
什么是Ajax请求,Ajax也就是“Asynchronous JavaScript and XML”(异步JavaScript和XML),无刷新数据读取.能减少流量的消耗,也提高了浏览的流畅性,给用户 ...
- Javascript与Ajax
不使用jquery来处理ajax请求该怎么做? 首先要明确html中的某些数据需要从服务端获得,也就是客户端向服务端请求(request)数据,服务端就响应(response)这个请求,把客户端要的数 ...
随机推荐
- .NET 创建Windows服务,及服务的安装卸载
.NET服务创建过程 http://jingyan.baidu.com/article/fa4125acb71a8628ac709226.html 相关命令(要以管理员身份打开cmd) 安装服务 -& ...
- 算法(二)之遗传算法(SGA)
算法(二)之遗传算法(SGA) 遗传算法(Genetic Algorithm)又叫基因进化算法或进化算法,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,属于启发式搜索算法一种. 下面通过下 ...
- matchesSelector及低版本IE中对该方法的实现
matchesSelector用来匹配dom元素是否匹配某css selector.它为一些高级方法的实现提供了基础支持,比如事件代理,parent, closest等. W3C在2006年就提出了该 ...
- Python基础之函数等等
三元运算 三元运算(三目运算),是对简单的条件语句的缩写. 1 2 3 4 5 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 "值1&q ...
- Syslog
一.简介 syslog是一种工业标准的协议,可用来记录设备的日志.在UNIX系统,路由器.交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件.管理者可以通过查看系统记 ...
- c++ initialize_list
看到这么一个东西,可以实现花括号( "{" "}" )初始化容器类. 使用时需包含头文件 #include <initialize_list> 我们 ...
- Linux Bash shell one practice : array if else
shell practice 1 1.require A B C D 1 2 3 4 5 6 7 8 3 5 8 0 1 2 4 3 after handling: T A B C D A 1 2 3 ...
- Java dynamical proxy demo
今天练习了一下动态代理的一个方面,假设使用它来完成自动设置默认不提交,启动事务,获取到异常则回滚,正常执行则提交. 如果不使用动态代理,则需要在每个方法本身里面设置Connection,写try,ca ...
- SSIS ETL BEST PRACTICE
PackageRunLog(ExecutionGuid,PackageName,SourceTableName,DestinationTableName,StartTimeUTC,EndTimeUTC ...
- [转]ASP.NET 2.0中GridView无限层复杂表头的实现
本文转自:http://blog.csdn.net/net_lover/article/details/1306211 实现方法就是给单元格填充我们想要的格式代码. C# <%@ Page La ...