`
ducaijun
  • 浏览: 157067 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ajax入门学习笔记

    博客分类:
  • ajax
阅读更多

本文之于记录ajax技术的原理,不用框架及js库来实现数据的异步请求交互:

 

ajax是Asynchronous JavaScript and XML(即异步JavaScript和XML)一种融合多种技术的一种技术。好别扭(⊙o⊙)…

 

ajax的技术核心是XMLHttpRequest对象,对于XMLHttpRequest最早是在IE5.0中以ActiveX组件的形式出现的,后来Mozilla,chrome,Safari,Opera等浏览器厂商都支持了XMLHttpRequest,以及IE7+(IE7及以上版本)都支持了XMLHttpRequest对象,但IE5、IE5.5(这两个应该没人用了)、IE6(国内还是有N多人的机器上还是在用这个吧?!)还是用ActiveX对象来创建XMLHttpRequest对象,所以为了我们代码的鲁棒性,通用性,我们还是得照顾IE6及以下版本的浏览器,所以创建XMLHttpRequest对象需要对不同浏览器以不同方式来创建:

 

 

 

<script type="text/javascript">

var xmlhttp;

function loadXMLDoc(url){

xmlhttp=null;

if (window.XMLHttpRequest){

//针对IE7+,firefox,chrome,Safari,Opera等浏览器

  xmlhttp=new XMLHttpRequest();

  }else if (window.ActiveXObject){

  // 针对IE5 and IE6

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

if (xmlhttp!=null){

  xmlhttp.onreadystatechange=state_Change;//这里回调函数不能加括号,只写回调函数名

  xmlhttp.open("GET",url,true);//get方式发生http请求,第三个参数是表示异步提交 

  xmlhttp.send(null);

 

 

                //如果用post方式提交http请求

//xmlhttp.open("POST",url,true); 这里的url是不带请求参数的 参数在send里附带上

//xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//这句很重要 需要自己设置请求头信息

                //xmlhttp.send("param="+paramValue);

  }else{

  alert("您的浏览器不支持XMLHTTP,请升级您的浏览器.");

  }

}

 

function state_Change(){

if (xmlhttp.readyState==4){//readyState=4时表示服务器端的响应数据已经被全部接收

  if (xmlhttp.status==200){//status=200表示http连接状态正常

    // ...our code here...

var responseText = xmlhttp.responseText;//服务器响应的数据 文本形式

alert(responseText);

    }else{

    alert("Problem retrieving XML data");

    }

  }

}

</script>

 

 

XMLHttpRequest对象操作五个步骤如下:

1、XMLHttpRequest对象的创建 (需要兼容多个浏览器,创建方式IE6和其他版本浏览器有区别)

2、设置回调函数,XMLHttpRequest对象创建成功后,需要告诉它请求服务器后回来调用哪个函数继续执行

3、建立服务器的调用,XMLHttpRequest对象的open方法,三个参数,第一个http请求方式,get或post,第二个参数,请求的url地址,第三个参数 true异步调用 false 同步调用

4、向服务器发生数据,XMLHttpRequest对象的send方法,这里才是真正的请求服务器

5、回调函数处理,在服务器端的响应数据全部接受(readyState==4)并且http连接状态正常(status==200),此可以从 XMLHttpRequest对象的responseText以文本形式接收响应的数据。

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

XMLHttpRequest对象的readyState状态值如下

 

0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)

1 (初始化) 对象已建立,尚未调用send方法

2 (发送数据) send方法已调用,但是当前的状态及http头未知

3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误

4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

常见http连接状态(XMLHttpRequest对象的status值)如下:

 

1、200 OK 访问正常  表示成功访问,为网站可正常访问时的状态。

2、301 Moved Permanently 301重定向永久重定向 对搜索引擎相对友好的跳转方式,当网站更换域名时可将原域名作301永久重定向到新域名,原域名权重可传递到新域名,也常有将不含www的域名301跳转到含www的,如xxx.com通过301跳转到www.xxx.com 

3、302 Found 临时重定向 易被搜索引擎判为作 弊,比如response.Redirect()跳转、js跳转或静态http跳转。

4、400 Bad Request 域名绑定错误 一般是服务器上域名未绑定成功,未备案等情况。

5、403 Forbidden 没有权限访问此站  你的IP被列入黑名单,连接的用户过多,可以过后再试,网站域名解析到了空间,但空间未绑定此域名等情况。

6、404 Not Found 文件或目录不存在  表示请求文件、目录不存在或删除,设置404错误页时需确保返回值为404。常有因为404错误页设置不当导致网页返回的不是404而导致搜索引擎降权。

7、500 Internal Server Error 程序或服务器错误 服务器内部程序错误,出现这样的提示一般是程序页面中出现错误,如语法错误,数据连接故障等。

 

详细的http连接状态 烦请参考我的另一片文章:http://ducaijun.iteye.com/admin/blogs/1334921

 

分享到:
评论

相关推荐

    AJAX学习笔记(内含实例)

    AJAX学习笔记。内含Java调用的两个实例,及JavaScript的ajax工具函数,可快速入门,也可当手册使用。个人精心整理,值得收藏。 更多:http://download.csdn.net/user/daillo/all

    Ajax学习笔记个人总结

    ### Ajax学习笔记个人总结 #### 一、XMLHttpRequest对象简介 **XMLHttpRequest** 对象是 AJAX 技术的核心,它负责在客户端与服务器之间发送异步请求,无需刷新整个页面即可实现局部数据更新。要使用 ...

    Ajax 学习笔记,超详细的噢!不看后悔

    在这份超详细的Ajax学习笔记中,我们将深入探讨以下几个关键知识点: 1. **基础概念**:Ajax的核心是JavaScript对象XMLHttpRequest,它使得前端和后端能够进行异步通信。异步意味着用户在等待服务器响应时可以执行...

    ajax学习笔记

    ### AJAX学习笔记 #### 一、引言 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。...

    Ajax和jQuery学习笔记

    ### Ajax和jQuery学习笔记 #### 一、Ajax基础与原理 **1.1 什么是Ajax?** Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种用来创建快速动态网页的技术,通过在后台与服务器进行少量数据...

    ajax的学习笔记

    本学习笔记将从基础概念、核心组成部分、工作原理以及实际应用等方面进行深入探讨。** ### 一、基础概念 1. **异步通信**:Ajax的核心特性是异步,即在不刷新整个页面的情况下与服务器交换数据并局部更新页面。 2...

    Ajax从入门到精通(含学习笔记)

    - 创建XMLHttpRequest对象:这是Ajax的基础,所有浏览器都内置了这个对象。 - 发送请求:通过XMLHttpRequest对象的open()方法设置请求类型(GET或POST)、URL和是否异步,然后用send()方法发送请求。 - 处理响应:当...

    Ajax的学习笔记

    本压缩包中的"AJAX学习笔记.doc"文档,可能包含了Ajax的基础概念、使用示例及进阶技巧,适合初学者参考学习。同时,推荐以下在线资源: - [MDN Web文档](https://developer.mozilla.org/zh-CN/docs/AJAX):详尽的...

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

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

    Ajax入门(读书笔记)

    ### Ajax入门知识点详解 #### 一、Ajax概述 **1.1 Ajax给Web应用带来的作用** - **桌面客户端化:** Ajax技术使得Web应用具备类似桌面客户端软件的灵活性,实现了加载动态化和操作客户端化,极大地提高了用户体验...

    ajax学习笔记代码

    **Ajax学习笔记代码详解** Ajax,全称Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术的...

    AJAX学习笔记1

    **标题:“AJAX学习笔记1”** 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。AJAX的核心是利用...

    ajax dwr学习笔记和jar文件

    DWR (Direct Web Remoting) 是一个开源的Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行实时通信,无需刷新整个...学习DWR,不仅可以理解Ajax的核心技术,还能为构建现代Web应用打下坚实基础。

    ASP.NET AJAX 实战 学习笔记(二)

    【ASP.NET AJAX实战学习笔记(二)】 在深入探讨ASP.NET AJAX之前,首先理解Microsoft Ajax Library至关重要。这个JavaScript库是Microsoft专门为实现异步更新和增强Web应用交互性而设计的。它不仅支持主流浏览器,如...

    java unix sping ajax struts hibernate 学习笔记

    这篇学习笔记涵盖了广泛的Java和JavaEE相关技术,包括Unix、Spring、Struts、Ajax、Hibernate等核心组件。让我们深入探讨一下这些技术。 首先,Unix是一个强大的操作系统,是许多服务器和开发环境的基础。在"Unix...

    经典ajax学习笔记

    以下是一份详细的Ajax学习笔记,涵盖了其基本概念、工作原理、优势与限制,以及实际应用。 ### 一、基本概念 Ajax的核心是JavaScript对象XMLHttpRequest(XHR),它允许浏览器在后台与服务器进行通信,而不会打断...

    Ajax学习笔记.zip

    Ajax,全称Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的...Ajax.pdf和Ajax2.pdf很可能是关于这些概念的详细教程,包含了实例和实践指导,对于深入学习Ajax非常有帮助。

    16ajax学习笔记1

    在本篇16ajax学习笔记1中,我们将探讨Ajax的基础概念、使用方法以及jQuery库中的Ajax实现。 1、发送请求: Ajax的首要任务是创建XMLHttpRequest对象,这是浏览器提供的API。在JavaScript中,我们可以通过new ...

    ZK-AJAX学习笔记

    从给定的文件信息来看,这是一份详细的ZK-AJAX学习笔记,记录了从准备环境、下载运行ZK到深入学习各个组件的过程。ZK是一款基于Ajax的开源Web应用框架,它允许开发者使用类似桌面应用的组件来构建Web应用,而无需...

Global site tag (gtag.js) - Google Analytics