加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

AJAX(一)

发布时间:2020-12-15 22:09:22 所属栏目:百科 来源:网络整理
导读:Ajax = Asynchronous JavaScript and XML(异步的Javascript和XML)。 Ajax不是新的编程语言,而是一种使用现有标准的新方法。 Ajax的历史。2005年2月Jesse James Garret在他的文章中首次提出了Ajax这个术语。Gmail、Google Maps和Flickr等web应用程序便是基于

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

Ajax的历史。2005年2月Jesse James Garret在他的文章中首次提出了Ajax这个术语。Gmail、Google Maps和Flickr等web应用程序便是基于这种技术。这些应用程序具有更好的响应性,能够立即更行页面,提供了出色的交互和更好的用户体验。

根据Garret的说法,Ajax本身并不是一种新技术,它是由几种长期存在的web技术组合而成的:

使用html和css控制页面结构和表示方法;

使用DOM显示和操纵页面;

使用浏览器的XMLHttpRequest对象在客户机和服务器之间传输数据;

使用XML作为在客户机和服务器之间传输的数据的格式;

最后,使用Javascript动态地显示所有内容并且提供交互功能。

Ajax之所以很流行,是因为它能解决以下几个其它技术解决不了的问题:

1.页面无刷新的动态数据交换

2.局部刷新页面

不刷新整个页面便可与服务器通信的方法有:Flash、Java applet、框架、隐藏的iframe、XMLHttpRequest(Ajax)。

Ajax应用程序在用户和服务器之间建立一个中介。Ajax引擎(Ajax engine)向用户提供界面(借助html和css)。如果用户的操作并不要求向服务器发出请求(例如,显示已经存储在本地的数据),那么Ajax 引擎会进行响应。这使浏览器能够对许多用户操作立刻做出反应,使页面的反应像桌面程序那样迅速。如果用户操作需要服务器调用,Ajax引擎就异步地执行它,因此用户不需要等待服务器的响应。用户可以继续与应用程序进行交互,当请求的数据到达时,引擎会更新页面。这里的重点是,用户的操作不会由于等待服务器而暂停

下面是一个无刷新验证用户名的例子。

HMTL代码:

 
 
  1. <!--第一个表单-->
  2. <formaction=""method="post">
  3. 用户名<br/>
  4. <inputtype="text"name="username1"id="username"/>
  5. <inputtype="text"id="myres"style="border-width:0;color:red;"><br/>
  6. 密码<br/>
  7. <inputtype="password"name="password"/><br/>
  8. 邮箱<br/>
  9. <inputtype="text"name="email"/><br/>
  10. <inputtype="submit"vlaue="用户注册"/>
  11. </form><br/>
  12. <!--第二个表单-->
  13. <formaction=""method="post">
  14. 用户名<br/>
  15. <inputtype="text"name="username2"id="username"/>
  16. <inputtype="text"id="myres"style="border-width:0;color:red;"><br/>
  17. 密码<br/>
  18. <inputtype="password"name="password"/><br/>
  19. 邮箱<br/>
  20. <inputtype="text"name="email"/><br/>
  21. <inputtype="submit"vlaue="用户注册"/>
  22. </form>
  23. </body>

Javascript代码:

 
 
  1. <scripttype="text/javascript">
  2. window.onload=initAll;
  3. functioninitAll(){
  4. //document.getElementById("test").onclick=checkName;//键盘被松开时执行checkName
  5. document.getElementById("username").onkeyup=checkName;
  6. }
  7. //创建Ajax引擎
  8. functiongetXmlHttpObject(){
  9. if(window.ActiveXObject){//兼容IE
  10. xmlHttpRequest=newActiveXObject("Microsoft.XMLHTTP");
  11. }else{
  12. xmlHttpRequest=newXMLHttpRequest();
  13. }
  14. returnxmlHttpRequest;
  15. }
  16. //验证用户名是否存在
  17. varmyXmlHttpRequest="";
  18. functioncheckName(){
  19. myXmlHttpRequest=getXmlHttpObject();//过程1
  20. if(myXmlHttpRequest){
  21. //通过myXmlRequest对象发送请求到服务器的某个页面
  22. varurl="registerProcess.php?username="+document.getElementById("username").value;
  23. //打开请求
  24. myXmlHttpRequest.open("get",url,true);
  25. //指定回调函数
  26. myXmlHttpRequest.onreadystatechange=chuli;
  27. //如果是get请求则填入null即可;如果是post请求则填入实际的数据
  28. myXmlHttpRequest.send(null);//过程2
  29. }
  30. }
  31. //回调函数过程4
  32. functionchuli(){//alert(“处理函数被调用”.myXmlHttpRequest.readyState);
  33. if(myXmlHttpRequest.readyState==4){document.getElementById("myres").value=myXmlHttpRequest.responseText;
  34. }
  35. }
  36. </script>

点击验证用户名按钮,会弹出四个对话框分别为四个状态:

..

registerProcess.php页面代码:

 
 
  1. <?php
  2. header("Content-type:text/html;charset=GBK");
  3. //接收数据
  4. $username=$_GET['username'];
  5. //http响应。过程3
  6. if($username=="xiyou"){//如果输入用户名为“xiyou”,则提示用户名不可用,其他显示可用
  7. echo"用户名不可用";
  8. }else{
  9. echo"用户名可用";
  10. }
  11. ?>

效果如下所示:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读