`
chenhua_1984
  • 浏览: 1251075 次
  • 性别: 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相关...

    Java相关课程系列笔记之十一Ajax学习

    在本篇Java相关课程系列笔记之十一中,我们聚焦于Ajax的学习,这是一项在Web开发中广泛使用的技术,用于创建动态、无刷新的用户界面。Ajax全称Asynchronous JavaScript and XML,即异步JavaScript和XML,它允许网页...

    一点学习ajax的笔记

    ### AJAX学习笔记详解 #### 一、引言 在当今快速发展的互联网技术中,异步JavaScript和XML(AJAX)已成为构建动态Web应用的关键技术之一。通过本篇笔记,我们将深入探讨AJAX的核心概念和技术要点,并针对实际开发...

    Java相关课程系列笔记

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

    Ajax学习笔记

    ### Ajax学习笔记 #### 一、解释Ajax Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量的数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新...

    Struts、Spring、Hibernate&Ajax;学习笔记总结

    ### Struts、Spring、Hibernate&Ajax 学习笔记总结 #### Struts 部分 **Struts** 是 Java 开源框架中最早出现且最具影响力的框架之一,它出自 Apache 组织,是 Java Web 应用开发的标准之一。Struts 以 MVC(Model...

    Ajax学习笔记,希望大家喜欢

    总的来说,Ajax通过XMLHttpRequest对象实现了页面的局部刷新,降低了服务器负载,提高了用户体验,是现代Web开发中不可或缺的技术之一。通过深入理解和熟练运用Ajax,开发者可以构建更加动态、交互性更强的网页应用...

    AJAX异步通信技术学习笔记

    这一特性使得AJAX成为了Web2.0时代的关键技术之一。 #### 三、核心组件:XMLHttpRequest AJAX技术的核心组件是`XMLHttpRequest`对象。这个对象提供了与服务器进行异步通信的能力,主要通过HTTP协议来实现。 ##### ...

    jQuery学习笔记(一)

    **jQuery学习笔记(一)** 在深入探讨jQuery之前,我们首先要理解什么是jQuery。jQuery是一个高效、易用且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。由John Resig在2006...

    Jquery学习笔记Jquery学习笔记

    Jquery选择器是Jquery框架中最基本也是最强大的功能之一。使用Jquery选择器可以快速地获取节点对象,从而实现各种动态效果。例如,使用$("#userName")可以获取id为userName的节点对象,而使用$("input[name='...

    Ajax总结和java框架学习笔记

    ### Ajax技术概述与Java框架学习笔记 #### 一、Ajax技术简介 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,...

    SSH学习笔记3 SSH学习笔记3

    SSH学习笔记3主要聚焦于三个Java企业级开发框架——STRUTS、SPRING和HIBERNATE的集成与应用。这三个框架是Java后端开发中非常重要的组件,它们各自负责不同的层面,共同构建了一个强大的MVC(Model-View-Controller...

    AngularJS 学习笔记.pdf

    数据双向绑定是AngularJS最突出的特性之一,它允许视图层直接和数据模型层关联,模型数据的任何改变都能实时反映到视图上,反之亦然。这一机制极大地提高了前端开发效率和应用程序的响应速度。 AngularJS的依赖注入...

    ajax源码笔记

    总结,Ajax 是构建动态网页的关键技术之一,通过理解其工作原理、应用场景和实现方法,开发者可以有效地优化网页交互,提升用户体验。而"AJax视频教程-源码笔记"则为你提供了深入学习和实践的宝贵资料。

    林信良学习笔记之-AjaxGossip

    林信良的学习笔记《AjaxGossip》深入浅出地介绍了Ajax的核心概念和技术细节,对于初学者来说是一份非常实用的教程。 **Ajax基础** 1. **XMLHttpRequest对象**:Ajax的核心是XMLHttpRequest对象,它允许JavaScript...

    web学习笔记 —— javascript基础

    它是Web开发的三大核心技术之一,与HTML和CSS相辅相成,为网站提供了丰富的用户体验。这篇“web学习笔记——javascript基础”将带你走进JavaScript的世界,理解其基本概念和常用语法。 JavaScript语法基础: 1. ...

    javascript入门学习笔记

    JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。它允许开发者在用户的浏览器上动态地处理和更新网页内容,提供交互式的用户体验。以下是对"javascript入门学习笔记"的详细解读: 一、...

Global site tag (gtag.js) - Google Analytics