打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
传智播客:ajax学习笔记---什么是Ajax - habernate的日志 - 网易博客

传智播客:ajax学习笔记---什么是Ajax

java 2009-04-09 13:18:55 阅读10 评论0   字号: 订阅

Ajax不是一个技术,而是好几个技术的结合:
1.使用XHTML和CSS的基于标准的表示技术
2.使用Dom即使进行动态显示和交互。解决页面数据获取,服务器返回数据的解析,五刷新页面的更新。
3.使用XML和XSLT进行数据交换和处理,XML是Ajax常用的数据传输格式,但并不是必须要使用Xml,也可以使用不同文本格式。比如google就是使用纯文本进行数据传输。
4.使用XMLHTTPRequest进行数据检索。解决了异步交互。
5.使用JavaScript把上面的技术融合起来。是实现数据从“页面--服务器---页面”的桥梁。

传统模式下Http请求的发送和服务器响应结果的接收都是由浏览器完成的。同时服务器响应的结果是一个新的Html页面。
传统模式中,浏览器通过表单(Form)组织数据并提交到服务器并且接收服务器返回的页面。

Ajax发送Http请求和接收服务器响应都是通过Ajax引擎完成的。服务器端的响应结果是数据(XML格式或不同文本格式),而不是像传统模式下以新的页面为响应结果。响应结果会通过注册在Ajax引擎上的回调方法来执行响应操作并显示给客户。
Ajax中,通过JavaScript获取页面上需要处理的数据,通过Ajax引擎把这些数据发送到服务器,同时还要在Ajax引擎上注册响应的回调方法。但服务器把处理后的数据返回到Ajax引擎就调用回调方法中的相关数据把服务器返回的数据呈现给用户。
Ajax中服务器端做的工作比传统方式要少一些。两者都要进行数据的接收和处理,但是Ajax接收的数据,返回的也是数据,而不是传统方式的整个页面。

关于XMLHttpRequest对象的历史
最早的XMLHttpRequest是IE5.0中以ActiveX控件的形式出现的,后来Mozilla,Safari,Opera等浏览器厂商都支持了XMLHttpRequet对象。也就是说在这些浏览器中,可以直接定义XMLHttpRequest对象。
但是对于IE6以前的版本,该对象只能够以ActiveX来创建XMLHttpRequest对象。
正是由于不同浏览器对XMLHttpRequest对象的支持程度不同,导致在实际开发过程中为了在不同浏览器都能实现功能,创建这个对象就比较麻烦,下面是一个创建XMLHttpRequest对象的例子。
if(window.XMLHttpRequest){
//如果用户的浏览器支持XMLHttpRequest对象,就可以直接new了
//对于IE7,IE8,firefox,Mozilla,Safari浏览器都能满足这个条件
                  xmlhttp=new XMLHttpRequest();
                  if(xmlhttp.overrideMimeType){
                      xmlhttp.overrideMimeType("text/xml");
                  }
              }else if(window.ActiveXObject){
//如果浏览器不能直接支持new XMLHttpRequest()就只能使用Activex来创建了,但是前提是该浏览器能支持Activex控件。
//上面的浏览器也能满足这个条件,但是上面的自带了XMLHttpRequest对象,所以没有必要再利用这个来创建。
//由于不同版本的Activex控件不同,这里使用所以可能的版本来创建XMLHttpRequest对象,只要有一个控件创建成功,就break出去。
                  activexName=["MSXML2.XMLHTTP6.0","MSXML2.XMLHTTP5.0",
                  "MSXML2.XMLHTTP4.0","MSXML2.XMLHTTP3.0","MSXML2.XMLHTTP",
                   "Miscrosoft.XMLHTTP"];
                  for(var i=0;i<activexName.length;i++){
                      try{
尝试使用当前这个ActiveX控件创建XMLHttpRequest对象
                          xmlhttp=new ActiveXObject(activexName)
//注意使用Activex来创建XMLHttpRequest对象的写法的不同。
                          break;
                      }
                      catch(e){
                          
                      }
                  }
                  
              }
              if(xmlhttp==undefined||xmlhttp==null){//如果连Activex都不能支持,那就没办法了
                  alert("您的浏览器太老,请更换版本。");
                  return;
              }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
掌握 ajax,第 1 部分: ajax 简介
理解 Ajax 及其工作原理,构建网站的一种有效方法
原生JavaScript手写Ajax
WCF与AJAX编程开发实践(1):AJAX基础概念和纯AJAX示例
JS实现AJAX请求
ajax
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服