原生JavaScript实现AJAX
来源:互联网 发布:mysql 缓存 编辑:程序博客网 时间:2024/04/29 19:03
ajax是什么?
AJAX即 “Asynchronous Javascript And XML”,(异步Javascript 和 XML),指一种创建交互式网页应用的网页开发技术。
粗略的来说,AJAX技术,实现的是局部刷新页面,从而提高用户的操作体验。
普通的网页交互,通常是这样浏览器与服务器直接交互的,用户将数据提交给服务器后,服务器处理后,返回给浏览器,这样造成的结果的是,用户将数据提交给服务器,需要等待服务器返回结果后,才能进行下一步操作。如果使用AJAX以后,用户可以部分将部分数据先提交给服务器,服务器处理后,直接返回给浏览器(不用刷新)。
目前AJAX主要使用在:
1、动态加载数据,例如:树形菜单,联动菜单(省市联动)……
2、表单认证(用户在不提交表单前,就验证)……
3、电子商务应用(购物车)……
4、数据,页面的局部刷新
AJAX工作原理:
我们可以将AJAX的工作原理分为4条线
如下图:
第一条线:浏览器将请求发送给AJAX引擎
第二条线:AJAX引擎将浏览球的请求发送给服务器,让服务器处理
第三条线:服务器将处理的结果按一定个格式(文本,XML,JSON)返回给AJAX引擎
第四条线:浏览器接收到AJAX从服务器的数据,再按一定的规则,输出到浏览器上
代码实现
客户端GET方法提交数据,服务器返回文件格式数据的demo
//register.php<html><head><title>ajax用户注册</title><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css">body{ font-family: "Microsoft JhengHei";}label{ font-weight: bolder; font-size: 14px;}input.check{ border-width: 0; color: red; font-family: "Microsoft JhengHei"; font-weight: bolder;}</style> <script type="text/javascript">/*** 创建ajax引擎** 为不同浏览器做兼容*/function getXmlHttpObject(){ //第一根线 var xmHttpRequset; if(window.ActiveXObject){ //window.alert("ie") xmlHttpRequset = new ActiveXObject("Microsoft.XMLHTTP"); }else{ //window.alert("ff") xmlHttpRequset = new XMLHttpRequest(); } return xmlHttpRequset;} var myXmlHttpRequset = getXmlHttpObject(); //申明myXmlHttpRequset为全局变量 function checkName(){ //第二根线 if(myXmlHttpRequset){ var myurl = "/ajax/learn/registerpro.php?username=" + $("username").value; //这里为了方便用到了下面申明实现的$函数 myXmlHttpRequset.open("get", myurl, true);//.open("发送方法(get or post)", url, "是否异步(ture为异步,false为同步)") //回调函数 myXmlHttpRequset.onreadystatechange = solve;//这里调用了下面申明实现的solve函数,Ps:不要加括号,加括号表示将返回值赋给左边变量,而非调用 //发送数据 myXmlHttpRequset.send(null); //因为是GET方法,所以.send(null) }else{ //window.alert("error"); } } function $(id){ return document.getElementById(id);} //回调函数function solve(){ //第三、四根线 if(myXmlHttpRequset.readyState == 4){ $('res').value = myXmlHttpRequset.responseText; }}</script> </head><body> <form action="registerpro.php" method="post"> <label>账号</label> <input type="text" name="username" id="username" /> <input type="button" name="check" id="check" value="检查用户名" onclick="checkName()"/> <input class="check" type="text" id="res" readonly="readonly"/> </br> <label>密码</label> <input type="text" name="password" id="password" /> <input type="submit" name="submit" id="submit"/> </form></body></html>
//registerpro.php$username = $_GET['username'];if($username == "lisheng"){ echo "用户名不可用";}else{ echo "用户名可用";}
0 0
- 原生JavaScript实现AJAX
- 原生javaScript实现Ajax
- JavaScript实现原生ajax
- 【JavaScript】-原生JavaScript实现Ajax
- 原生JavaScript实现AJAX、JSONP
- 原生JavaScript实现Ajax请求
- 基于原生javascript的ajax实现
- 原生的javascript实现ajax技术
- 【Javascript】原生js实现ajax功能
- 原生javascript实现ajax 发送post请求
- javascript原生代码实现ajax请求
- JavaScript实现原生ajax的方法
- 原生JavaScript实现ajax异步请求代码
- 使用原生JavaScript实现AJAX、JSONP
- 原生javascript实现ajax异步请求
- 原生JavaScript实现Ajax(一):XMLHttpRequest
- 原生JavaScript实现Ajax的使用
- 使用原生JavaScript实现ajax操作
- java学习十九 条件运算符if
- Java {}
- JavaWeb:报错信息The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- "Cannot declare member function ...to have static linkage"错误
- set autot报错
- 原生JavaScript实现AJAX
- 黑马程序员——Java语言基础(一)
- 二叉树四种遍历(前序、中序、后序、层序)
- osgNeHe开发环境搭建
- 【DP】 HDOJ 3555 Bomb
- iOS触摸移动动画
- 2014-2024这十年,怎样规划——你准备好了吗?
- java学习二十 java条件语句if else
- HDU 3831 DICS