`
chenhua_1984
  • 浏览: 1233437 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

ajax学习笔记之一

阅读更多

  Aajax概述

  05年2月份,Adaptive Path公司发表了一片名为“ajax :一种WEB应用的程序开发的新方法”的文章。从此以后,ajax慢慢的被人们重视起来。但早期的ajax 的实现技术是比较早的隐藏帧技术。微软认识到了隐藏帧技术和隐藏iframe技术的流行,因此开发了XMLHttp,并且以ActiveX对象的形式引入。推动了web2.0的进程.

  首先应用在IE浏览器上,继而。Mozilla,Opera,Safari也相继开发了自己的XMLHTTPRequest对象类支持ajax。

 

  1ajax开发的原则.

  尽量减少通信:发送的和接受的数据尽可能的少

  没有意外

  遵循常规

  无干扰

  可访问性

  避免下载整个页面

  用户第一

 

  2ajax背后的技术

  HTML/XHTML

      CSS

      DOM

      XML

      XSLT

      XMLHttp

      javaScript

 

    Bhttp协议的状态码枚举

  1

  200找到了资源,并且一切正常

      304该资源上次请求后没有修改,通常用于浏览器的缓存机制

      401用户无权访问该资源

      403客户未能获得授权

      404指定的位置不存在要找的资源

 

  2XMLHTTPRequest对象

  IE5.0加入XML支持,也引入了名MSXML的ActiveX的程序库。然后Mozilla,Safari,Opera等也实现了自己的XMLHTTPRequest,统称为XHR对象。

     创建XHR对象:IE7以前

 

var oXHR=new ActiveXObject("Microsoft.XMLHttp");

   这个对象有很多的实现版本,微软建议是用3.0这个版本。通常在IE下面要去尝试浏览器具体是用的是哪个版本的ActiveX对象,因此,在创建的时候就有可能产生异常。

function createXHR(){

   var aVersions={"MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0"};
   for(va i=0;i<aversions.length;i++){
        tyr{
            var oXHR=new ActiveXObject(aVersions[i]);
            return oXHR;
           }catch(oError){}

   }

}
  throw new Error("MSXML is not installed.");

}

    幸好,在mazilla,safari,opera和ie7使用的代码是相同的

 

var oXHR=new XMLHttpRequest();

 这样就有了多个方法来创建这个对象,当然拥有一中创建XHR对象的跨浏览器的方法很有好处。可以修改函数如下。

 

function createXHR(){
  if(typeofXMLHttpRequest!="undefined"){
     return new XMLHttpRequest();

}else if(window.ActiveXObject){
   var aVersions={"MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0"};
   for(va i=0;i<aversions.length;i++){
        tyr{
            var oXHR=new ActiveXObject(aVersions[i]);
            return oXHR;
           }catch(oError){}

   }

   3使用XHR对象

 

var oXHR=new XMLHttpRequest();//这里表示除IE外的浏览器的创建方法
oXHR.open("get","info.txt",true);

    request type:请求类型 post,get,还有其它的,但不是被所有的浏览器支持。

    URL  :请求目标

    async:是否异步true表示异步。

   接着要定义一个onreadystatechange的事件处理函数。XHR有一个名为readState的属性。共有5种取值。

 

    0对象已经创建,未初始化open()方法

    1open方法已经调用,请求未发送

    2请求已经发送

    3收到部分响应

    4所有数据已经收到,连接已经关闭

 

var oXHR=new XMLHttpRequest();//这里表示除IE外的浏览器的创建方法
oXHR.open("get","info.txt?id=123",true);
oXHR.onreadystatechange==function(){ //如果是同步请求,那么就不需要这个函数
 if(oXHR.readyState==4){
  alert("Got response.");
}

}
 

最后一步就是发送

 

oXHR.send(null);//这里如果是get,则必须写null,post就像对象的引用。

 关于post请求

 

function sendRequestPost(){
    var oForm=document.forms[0];
    var sBody=getRequestBody(oForm);
    
   var oXHR=new XMLHTTPRequest();
   oXHR.open("post",oForm.action,true);
   oXHR.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   oXHR.onreadystatechange=function(){
        if(oXHR.readyState==4){
            if(oXHR.status==200){
              alert(oXHR.responseText);
          }
     }
}

oXHR.send(sBody);
}

 缓存控制,只要对浏览器重复调用,就必须考虑缓存的控制。这里可以使用Cache-Control 或Explres来设置

 

Cache-Control:no-cache
Expires:Fri,30 Oct ...
 

总结:ajax技术有他的不少优点,但也是有限制的。在IE上,要求用户必须启用ActiveX控件,如果用户禁用ActiveX控件,我们就无法访问XHR对象,这个时候就只能使用隐藏帧技术。

 

 

 

 

分享到:
评论

相关推荐

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之一Java学习笔记 Java相关课程系列笔记之四JDBC学习笔记 Java相关课程系列笔记之六HTML学习笔记 Java相关课程系列笔记之七CSS学习笔记 Java相关课程系列笔记之八JavaScript学习笔记 Java相关...

    AJAX异步通信技术学习笔记

    AJAX是一中运用JavaScript和可扩展编辑语言(XML),在网络浏览器和服务器之间传送或接收数据的技术。...AJAX是WEB2.0的核心之一.AJAX技术运用与浏览器中,使向服务器索取网页的部分信息成为可能.

    Java相关课程系列笔记

    Java相关课程系列笔记之八JavaScript学习笔记(建议用WPS打开) Java相关课程系列笔记之二Oracle学习笔记(建议用WPS打开) Java相关课程系列笔记之九Servlet...Java相关课程系列笔记之一Java学习笔记(建议用WPS打开)

    AJax 学习笔记一(XMLHTTPRequest对象)

    现在很多公司都在做标准的静态页面,为了增强客户的体验效果,经常会涉及到AJax效果,而设计...XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面(这是AJax的最大特点之一哦)。 2、创建XMLHttpRequest

    jQuery学习笔记之Ajax用法实例详解

    本文实例讲述了jQuery学习笔记之Ajax用法。分享给大家供大家参考,具体如下: 一、Ajax请求 1、jQuery.ajax(options) 通过 HTTP 请求加载远程数据。jQuery 底层 AJAX 实现。简单易用的高层实现见 .get,.post 等。 ....

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍  《java jdk 7学习笔记》是作者多年来教学实践经验的总结...

    JSP &amp; Servlet学习笔记(第2版)

     本书在讲解的过程中,以“微博”项目贯穿全书,随着每一章的讲述都在适当的时候将JSP &Servlet技术应用于“微博”程序之中,以便读者能了解完整的应用程序构建方法。 作者简介: 林信良(网名:良葛格)  学历...

    dojo精品中文教程(包一)

    dojo学习笔记(一)-dojo.io.IO & dojo.io.BrowserIO) dojo学习笔记(三) dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四)...

    揭开AJAX神秘的面纱(AJAX个人学习笔记)第1/5页

    本人学习AJAX时间并不长,仅10余天,不能说百分之百掌握,但也有所领悟。现在把自己的学习经过和体会写下来,与君共分享。 一、学习经过: AJAX技术的文章和书籍很多,视频也不少,可以说是近两年最热的技术。但...

    dojo精品中文教程(包二)

    dojo学习笔记(一)-dojo.io.IO & dojo.io.BrowserIO) dojo学习笔记(三) dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四)...

    dojo精品中文教程(全)

    dojo学习笔记(一)-dojo.io.IO & dojo.io.BrowserIO) dojo学习笔记(三) dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四)...

    dojo精品中文教程(包三)

    dojo学习笔记(一)-dojo.io.IO & dojo.io.BrowserIO) dojo学习笔记(三) dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四)...

    jQuery学习笔记之 Ajax操作篇(一) - 数据加载

    Ajax 通俗来讲即不需要刷新页面即可从服务器或客户端上加载数据,当然这些数据的格式是多种多样的。

    jQuery 学习笔记 (直接打印是个好主意!)

    由于工作需要,所以研究了一段时间的jQuery,参考了大量的宝贵资源,所以资源回馈一下,该笔记详细,有重点,经word排版可直接打印,以方便查阅,打印出来字体应该不小的! 参考: 《jQuery基础教程》、《锋利jQuery》 王兴魁 ...

    ajax详解_动力节点Java学院整理

    简言之,Ajax 是一种开发技术,支持网站或应用程序,使用实时数据更新界面,无需页面刷新。该功能创建了一种更为流畅且更具桌面风格的用户体验。 Ajax 简史 Ajax 的发展历史类似于其他许多一夜成名的技术。尽管 ...

    jQuery学习笔记之 Ajax操作篇(一) – 数据加载

    加载 HTML 我们通常使用加载 HTML 的方法来加载 HTML 片段,并插入到指定位置,假设当前页面为: &lt;div&gt;&lt;/div&gt; &lt;button&gt;load&lt;/button&gt; ...JSON 即 Javascript Object Notation,直译过来即 Javas

    ExtJS4中文教程2 开发笔记 chm

    ExtJS4学习笔记(一)---window的创建 ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(三)---VBox的使用 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(二)---HBox的使用 ...

    jQuery学习笔记之 Ajax操作篇(二) - 数据传递

    在前一篇介绍 jQuery Ajax 的数据加载中的例子都是从静态的文件中取得数据,而 Ajax 更大的价值在于与后端服务器进行数据传递,动态地请求和发送数据。

    jQuery学习笔记之基础中的基础

    就像上节所将到的Ajax框架一样,简单的说,jQuery是一个优秀的javascript框架,它能够让用户方便的处理html,events(冒泡)事件,动画效果,ajax交互等,它极大程度的改变了开发者使用javascript的习惯。jQuery自2006...

    jQuery学习笔记之入门

    最近在学习jQuery,在网上看到有几篇关于jQuery的文章,写的不错转载过来跟大家分享一下;...嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开发人员更加专注于逻辑本身。 二、JQuery

Global site tag (gtag.js) - Google Analytics