html --- ajax --- javascript --- 简单的封装

Ajax的简单封装

Ajax的全称是AsynchronousJavaScriptAndXML

如有疑问请参考:http://zh.wikipedia.org/zh-cn/AJAX

以及传智播客的视频教程:http://java.itcast.cn/news/8308d118/740a/4dcd/8dbf/c73d2fe5bc60.shtml

其实已经有好多框架对它进行了封装,但是还是有好多时候用到自己封装的

透露一下,本人是宇多田光的听众之一哦!

封装后的代码如下:

文件路径:\web\AjaxRequest.js


/**
* Created by yuki on 2014/5/13.
*
* 用法:
1.新建对象Ajax对象
2.设定带有一个XMLHttpRequest返回参数的回调函数
3.执行execute,传入请求方式,url,是否异步
*
*/
function Ajax()
{
this.xmlHttp = null;
this.responseText = null;
this.callback = null;
}

/**
* 执行ajax
*/
Ajax.prototype.execute = function(method, url, async){
this.createXmlHttp();
this.sendUrl(method, url, async);
this.getResponseText();
this.callback();
};

/**
* 服务器返回服务器输出的纯文本数据
* @param embed
*/
Ajax.prototype.getResponseText = function(){
// 判断对象的状态
if (this.xmlHttp.readyState == 4) {
// 判断http交互是否成功
if (this.xmlHttp.status == 200) {
// 判断服务器返回的数据
// 获取服务器输出的纯文本数据
this.responseText = xmlHttp.responseText;
}
}
};

/**
* 发送url请求
* @param method 取值为GET或POST
* @param url 要发送的url可以带请求参数
* @param async true表示异步,false表示同步
*/
Ajax.prototype.sendUrl = function(method, url, async){
// 注册回调函数
this.xmlHttp.onreadystatechange = this.callback;
// 第三个参数表示同步false或是异步true
this.xmlHttp.open(method, url, async);
// 发送数据,开始和服务器端交互
this.xmlHttp.send();
};

/**
* 创建XMLHttpRequest
*/
Ajax.prototype.createXmlHttp = function(){
if (window.XMLHttpRequest) {
this.xmlHttp = new XMLHttpRequest();
// 针对某些特定版本的Mozilla浏览器的BUG修正
if (this.xmlHttp.overrideMimeType) {
this.xmlHttp.overrideMimeType(‘text/xml‘);
}
} else if (window.ActiveXObject) {
// 针对IE6, IE5.5, IE5
var activexName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var i = 0; i < activexName.length; ++i) {
try {
// 取出控件名进行创建,如果创建成功就终止循环
this.xmlHttp = new ActiveXObject(activexName[i]);
break;
} catch (e) {
// do nothing...
}
}
}
//确认XMLHttpRequest对象创建成功
if (!this.xmlHttp) {
alert(‘XMLHttpRequest对象创建失败!‘);
} else {
alert(‘XMLHttpRequest对象创建成功!‘);
}
};

代码封装好了,怎么使用它呢?

看html页面的代码:

文件路径:\web\AjaxRequest.html


<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="GBK">
<title>AjaxRequest</title>

</head>
<script src="AjaxRequest.js"></script>
<body>

<div id="div1" style="width:200px; height:200px; background-color: darkgoldenrod"></div>

<script>
var ajax = new Ajax();
ajax.callback = function(){
var responseText = this.responseText;
var div1 = document.getElementById(‘div1‘);
div1.innerHTML = responseText;
};
ajax.execute(‘GET‘, ‘First.jsp‘, true);
</script>

</body>
</html>

它是要访问服务器的,让jsp为它提供服务吧

文件路径:\web\First.jsp


<%--
Created by IntelliJ IDEA.
User: yuki
Date: 2014/5/13
Time: 23:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>HI</title>
</head>
<body>

<h1>Hello Ajax!</h1>
Date = <%= new java.util.Date() %>
<br>

</body>
</html>

这样,Ajax的技术就可以是在页面不刷新的情况下,得到服务器的输出了

下面是结果:

更多好文请关注我的博客:

http://www.cnblogs.com/kodoyang/

html --- ajax --- javascript --- 简单的封装,布布扣,bubuko.com

时间: 2024-10-10 00:09:08

html --- ajax --- javascript --- 简单的封装的相关文章

自己封装的Ajax - JavaScript

1. [代码][JavaScript]代码      //javascript Object: ajax Object//Created By RexLeefunction Ajax(url,data){    this.url=url;    this.data=data;    this.browser=(function(){          if(navigator.userAgent.indexOf("MSIE")>0) {              return &

ajax的三次封装简单概况

原生ajax:                readyState         准备状态                status             页面状态                send            发送请求                open            打开对象,设置请求                XMLHttpRequest    火狐 谷歌 等浏览器适用                ActiveXObject    IE适用     

第一百六十一节,封装库--JavaScript,完整封装库文件

封装库--JavaScript,完整封装库文件 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象,使其每次调用都是独立的对象 * $()创建库对象,有一个可选参数,参数有两种方式,1是传入的this,2是传入的字符串 * 可选参数说明: * 传入的this,this,就是当前对象本身 * * 传入的字符串,代表获取元素选择器 * 参数是元素选择器(id值.class值.标签名称)其中一样的字符串

让Ajax更简单

之前写了一篇 ASP.NET中一种超简单的Ajax解决方案 最近把他拿出来更新了下,把demo也搞的更详细了一点 加入了blqw.Json,所以支持更多类型参数和返回值 优化了对exception的处理 增加了分页Pager对象 优化了注册页面变量的方式,更安全了 特点 首先他不需要任何的配置文件 没有额外dll ,他是开源的,只要你愿意, 他只有2个cs文件 使用之后前台js调用后台方法都是采用同步模式,这样更加接近C#后台的编程方式 var user = PostAjax8(); var m

我自己的Javascript 库,封装了一些常用函数 Kingwell.js

我自己的Javascript 库,封装了一些常用函数 Kingwell.js 博客分类: Javascript javascript 库javascript库 现在Javascript库海量,流行的也多,比如jQuery,YUI等,虽然功能强大,但也是不万能的,功能不可能涉及方方面面,自己写一个的JS库是对这些的补充,很多也比较实用,把应用到项目中中去也比较方面,这也是对工作的一些积累,也加深对知识的理解. 2012-6-20更新,添加设置Cookie,获取Cookie,删除Cookie方法.很

Ajax的简单使用

1.简介 AJAX = Asynchronous JavaScript And XML(异步 JavaScript 及 XML) AJAX 是 Asynchronous JavaScript And XML 的首字母缩写. AJAX 并不是一种新的编程语言,而仅仅是一种新的技术,它可以创建更好.更快且交互性更强的 web 应用程序. AJAX 使用 JavaScript 在 web 浏览器与 web 服务器之间来发送和接收数据. 通过在幕后与 web 服务器交换数据,而不是每当用户作出改变时重载

最新 AFNetworking 3.0 简单实用封装

AFNetworking 3.0 的到来使我们开发者又方便了许多,话不多说,直接上代码. 1.首先 引入框架AFNetworking框架 GitHub下载地址:https://github.com/AFNetworking/AFNetworking AFNetworking官网地址:http://afnetworking.com 2.导入AFNetworking 支持框架 #import<MobileCoreServices/MobileCoreServices.h> #import<S

javascript面向对象编程---封装

javascript是一种基于对象(object-based)的语言,遇到的所有东西几乎都是对象,但js又不是一种真正面向对象编程语言,因为它的语法中没有class(类). 一.生成对象的原始模式 假设把猫看为一个对象,它有“名字”和“颜色”两个属性 var Cat={ name : ' ', color : ' ' } 根据这个原型对象的规格,生成两个实例对象. var cat1={}  //创建一个空对象 cat1.name = "大毛";    //按照原型对象的属性赋值 cat

javascript面向对象程序设计——封装(by vczero)

在javascript中,我们宣称是面向对象的程序设计.其实面向对象是js与生俱来的特性,每一门OOP语言都有自己的特性,我们不能为了OOP,去模仿另一门语言,把握语言的特性才是正道.我们可以通过new Object()来创建一个实例,但是不推荐这种形式,我们需要更为直观的数据封装. 一.封装你的数据特性 1 var user = { 2 name: '', 3 email: '' 4 }; 很简单,我们封装了一个JSON格式的对象,也称为字面量对象:User对象包含两个属性name和email