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 --- 简单的封装的更多相关文章
- 用javascript简单封装AJAX
1.创建一个AJAX引擎对象 var CreateAjax = function () { var xhr = null; if (window.XMLHttpRequest) { //非IE游览器 ...
- ajax的三次封装简单概况
原生ajax: readyState 准备状态 status 页面状态 ...
- 第107天:Ajax 实现简单的登录效果
使用 Ajax 实现简单的登录效果 Ajax是一项使局部网页请求服务器信息,而不需整体刷新网页内容的异步更新技术.这使得向服务器请求的数据量大大减少,而且不会因局部的请求失败而影响到整体网页的加载. ...
- 第一百六十一节,封装库--JavaScript,完整封装库文件
封装库--JavaScript,完整封装库文件 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象, ...
- Django ajax的简单使用、自定义分页器
一. ajax初识 1. 前后端传输数据编码格式contentType 使用form表单向后端提交数据时,必须将form表单的method由默认的get改为post,如果提交的数据中包含文件,还要将f ...
- 我自己的Javascript 库,封装了一些常用函数 Kingwell.js
我自己的Javascript 库,封装了一些常用函数 Kingwell.js 博客分类: Javascript javascript 库javascript库 现在Javascript库海量,流行的 ...
- Ajax+Ashx实现以及封装成控件的实现
asp.net 后台多线程异步处理时的 进度条实现一(Ajax+Ashx实现以及封装成控件的实现) 工作好长时间了,这期间许多功能也写成了不少的控件来使用,但是,都只是为了代码的结构清析一些而已.而这 ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
- php+jquery+ajax+json简单小例子
直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...
随机推荐
- javascript 中$符号是代表什么意思!
$符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的 1. 首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asda ...
- POJ 1743 Musical Theme(后缀数组)
题意:有n个数值,算出相邻两个值的差值,此时有n-1个值的序列,把这序列当做字符串的话,求最长重复子串,且这两个子串不能重叠. 分析:后缀数组解决.先二分答案,把题目变成判定性问题:判断是否存在两个长 ...
- 判断线段相交 -- 51nod 1264 线段相交
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1264 三角形的有向面积:a.x*b.y+b.x*c.y+c.x*a.y ...
- IE JS编程需注意的内存释放问题
1.给DOM对象添加的属性是一个对象的引用.范例:var MyObject = {};document.getElementById('myDiv').myProp = MyObject;解决方法:在 ...
- WinCE5.0中文模拟器SDK(VS2005)的配置
WinCE5.0中文模拟器SDK的安装过程不细说了,一路默认即可,下面主要介绍如何配置,使其能在VS2005中正常使用. 安装完成后,打开VS2005,点击菜单“工具”——“选项”——“设备工具”—— ...
- poj 1159 (DP LCS)
滚动数组 + LCS // File Name: 1159.cpp // Author: Missa_Chen // Created Time: 2013年07月08日 星期一 10时07分13秒 # ...
- UVa 136 Ugly Numbers【优先队列】
题意:给出丑数的定义,不能被除2,3,5以外的素数整除的的数称为丑数. 和杭电的那一题丑数一样--这里学的紫书上的用优先队列来做. 用已知的丑数去生成新的丑数,利用优先队列的能够每次取出当前最小的丑数 ...
- Windows系统下Memcached缓存系列一:Couchbase(服务器端)和CouchbaseClient(c#客户端)的安装教程
一:服务器端的安装 官网 http://www.couchbase.com/download 我的电脑是64位的win7,找到对应下载windows版本的服务器端缓存,大概90M的样子 运行期间可 ...
- 关于ios越狱开发的那些事
也许吧,每每接触某些新东西的时候,都有点犯晕吧,这不是应该要的. 第一次接触ios越狱开发,也是这样吧.这篇主要是从无到有的说一下ios越狱的开发,网上很多的教程大部门都比较旧了吧,放在新设备上总是出 ...
- python练习程序(c100经典例21)
题目: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只 ...