前边参考了许多人的做法后自己封装了一个ajax的JS类,完全属于自造轮子,如果你正在使用其他的框架(如:jQuery),那就没必要在看下去了。
一、ajax_function.js 代码如下:
var XMLHttpReq=false;
function createXMLHttpRequest(){
if(window.XMLHttpRequest){ //Mozilla
XMLHttpReq=new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
}
/*
* method 请求方式 可以是POST 或者 GET
* url 异步调用的路径
* content 这里传递给后台的是参数
* callback 回调函数名(以前一直以为这里就是一个回调函数的名字,其实不 然,这里可以是一个构造function)
* syn 是否异步调用 true 异步;false 同步
*/
function send(method,url,content,callback,syn){
createXMLHttpRequest();
if(method.toLowerCase()=="get") {
XMLHttpReq.open(method, url, syn);
}else if(method.toLowerCase()=="post") {
XMLHttpReq.open(method, url, syn);
XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}else {
window.alert("http request parameter wrong category!");
return false;
}
/*
* 如果是异步调用,那么指定其回调函数,如果是同步调用,指定的回调函数不符合w3c标准。
*/
if(syn){
XMLHttpReq.onreadystatechange=callback;
}
XMLHttpReq.send(content);
}
二、应用实例。
在页面中引入封装的控件
1、简单的异步调用。
function simple_fun(){
send("GET", url, null,call_back,true);
}
function call_back(){
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var inner = XMLHttpReq.responseText;
//var inner = XMLHttpReq.responseXML;
//这里获取了inner后就可以根据实际需求来修改页面的显示。
// your code
} else {
}
}
}
2、回调函数带参数的异步调用
function CarryParameters_fun(){
var arg="param";
send("GET", url, null,function(){call_back(arg),true);
}
function call_back(arg){
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var inner = XMLHttpReq.responseText;
//传入的参数arg可以参与到回调函数的运算。
} else {
}
}
}
3、同步调用
function Synchronization_fun(){
//注意传入的回调函数是null,syn是false.
send("GET", url, null,null,false);
}
那么,以先入为主的思想你是不是也纳闷:传入的回调函数是空,那XMLHttpRequest.response返回的数据在哪里处理?
如果异步调用,当然是在回调函数里接收到返回值。但是同步调用则有些不同,同步调用不使用回调函数,而
是在XMLHttpReq.open(method, url, syn);XMLHttpReq.send(content); 后面可以直接处理结果,比如
function send(method,url,content,callback){
createXMLHttpRequest();
if(method.toLowerCase()=="get") {
XMLHttpReq.open(method, url, syn);
}else if(method.toLowerCase()=="post") {
XMLHttpReq.open(method, url, false);
XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}else {
window.alert("http request parameter wrong category!");
return false;
}
XMLHttpReq.send(content);
//不需要回调函数,直接处理结果
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var inner = XMLHttpReq.responseText;
} else {
}
}
}
所以,在ajax的同步调用里面我们可以这样写:
function Synchronization_fun(){
send("GET", url, null,null,false);
call_back();
}
function call_back(){
if (XMLHttpReq.readyState == 4) {
if (XMLHttpReq.status == 200) {
var inner = XMLHttpReq.responseText;
} else {
}
}
}
分享到:
相关推荐
**二、Ajax 实例分析** 在“ajax_入门实例_”这个主题中,可能涉及的实例包括创建一个简单的Ajax请求,向服务器获取数据并更新页面内容。例如,我们可以创建一个按钮,点击后发送Ajax请求获取JSON数据,并将数据...
《ASP.NET 2.0 AJAX入门经典》这本书很可能包含了多个示例,演示如何使用AJAX技术来增强ASP.NET 2.0应用程序的交互性。这些实例可能涵盖用户界面改进、数据异步加载、实时验证等多个场景,帮助读者掌握实际开发技巧...
**Ajax入门经典源代码概述** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术的核心在于利用JavaScript与服务器进行异步数据交互,结合XML或其他...
### jQuery 开发 AJAX 入门实例详解 #### 一、简介 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使...
**Ajax入门实例——DWRDemo与ExtJS** Ajax(Asynchronous JavaScript and XML)技术是一种用于创建快速、动态网页的方法,它允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。本实例主要...
### Ajax入门实例详解 #### 一、什么是Ajax? Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,这意味着可以在不...
总结,这个经典AJAX简单入门篇结合PDF教程和源码实例,将帮助你快速理解并掌握AJAX的基本用法和DOM操作,是学习Web开发中AJAX技术的宝贵资源。通过学习,你将能够构建更高效、更互动的网页应用程序。
**AJAX完全入门** 在网页开发中,AJAX(Asynchronous JavaScript and XML)是一种核心技术,它允许我们在不刷新整个页面的情况...现在,你可以打开提供的"AJAX完全入门"压缩包文件,进一步学习其中的实例和详细教程。
**Ajax基础_Ajax入门** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术的引入极大地提升了Web应用的用户体验,因为它允许页面与服务器进行后台...
2. **实例分析**:提供的源码实例可以帮助初学者理解AJAX在实际操作中的运用,通过分析和运行代码加深理解。 3. **动手实践**:尝试创建自己的简单项目,如模拟一个联系人管理应用,实现数据的增删改查,这将有助于...
在这个"Ajax入门经典源代码"的压缩包中,很显然包含了一系列用于学习和实践Ajax技术的示例代码。 首先,让我们深入理解Ajax的核心概念: 1. **异步通信**:Ajax的核心特性就是异步,这意味着浏览器不会因为发送...
7. **实例分析**:压缩包中的实例可能包括了基本的GET请求、POST提交、JSON数据解析、异步加载图片、表单验证等。每个实例都值得仔细研究,理解其实现原理并尝试修改,以加深对Ajax的理解。 8. **跨域问题**:默认...
本书以实例的方式介绍JSP...本书实例来源于作者多年工作实践,基本囊括了当今流行的各种典型实例,讲解由浅入深、环环相扣,分析细致,实用性强。 本书是初学者的入门经典书籍,是Ajax和JSP技术程序员的必备工具书。
熟悉浏览器提供的开发者工具,如Chrome的开发者工具、Firefox的Firebug等,对于跟踪Ajax请求、分析响应和定位问题至关重要。同时,理解并能够使用断言库、模拟服务器响应等测试工具,可以提高Ajax应用的质量。 ####...
AJAX 实例入门 示例中的项目介绍了一个简单的 AJAX 应用案例,该案例使用 Servlet 作为后端服务。 #### 示例说明: - **选择省份后自动加载城市**:当用户在一个下拉列表中选择某个省份时,另一个下拉列表会动态...
本书以实例的方式介绍JSP...本书实例来源于作者多年工作实践,基本囊括了当今流行的各种典型实例,讲解由浅入深、环环相扣,分析细致,实用性强。 本书是初学者的入门经典书籍,是Ajax和JSP技术程序员的必备工具书。
本课程“Ajax从入门到精通”旨在帮助初学者快速掌握Ajax的核心概念和技术,通过学习,你将能实现页面的异步交互,提升用户体验。 一、Ajax基础知识 Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与...
本资料包是为初学者准备的一系列Ajax入门实例,旨在帮助理解Ajax的工作原理及其在实际应用中的运用。** ### 1. 基本概念 - **异步通信**: Ajax的核心特性就是异步,意味着它可以在后台与服务器进行通信,不会阻塞...
兼容多浏览器的AJAX入门实例(超详细注释) ... ... ``` - **文档类型定义** (`DOCTYPE`): 定义了当前文档遵循的DTD规范版本。 - **元数据** (`<meta>`): 设置字符集为gb2312。 - **JavaScript脚本** (`...
### PHP与AJAX实例知识点详解 #### 一、引言 在现代Web开发中,**PHP** 和 **AJAX** 是两种非常重要的技术。PHP是一种广泛使用的开源服务器端脚本语言,特别适合于Web开发并可嵌入HTML文档中。而AJAX...