一个AJAX连接池封装
1、源代码
这个AJAX连接池害我我弄了很久,终于,让它兼容IE6/7/8、FireFox、Opera、Google Chrome这四类浏览器了。
/**
* AJAX 连接池
* AJAXConnectionPool Build in 2009.7.10
* @author CodingMouse
* @version 1.0
*/
var AJAXConnectionPool = function() {
// 任务队列
var taskQueue = [];
// 请求缓冲池
var requestBufferPool = [];
// 最大连接数
var maxThreadNumber = 2;
return {
/**
* 获取空闲请求
* @return {空闲请求对象}
*/
getIdleRequest : function() {
var request = null;
for (var i = 0; i < maxThreadNumber; i++) {
if (requestBufferPool[i].readyState == 0) {
request = requestBufferPool[i];
break;
}
}
return request;
},
/**
* 初始化
* @param {最大连接数} max
*/
init : function(max) {
if (max != null)
maxThreadNumber = max;
for (var k = 0; k < maxThreadNumber; k++) {
var request = null;
if (window.XMLHttpRequest) { // 如果是 Google Chrome、 Mozilla Firefox、Netscape、Opera 8.0+、Safari、IE7+ 等浏览器
request = new XMLHttpRequest();
if (request.overrideMimeType) { // 设置 MiME 类别
/*
* 有些版本的浏览器在处理服务器返回的未包含XML mime-type头部
* 信息的内容时会报错,因此,要确保返回的内容包含text/xml信息。
*/
request.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) { // 如果是 Internet Explorer 6.0- 浏览器
var msXml = [
"Msxml2.XMLHTTP.6.0",
"Msxml2.XMLHTTP.5.0",
"Msxml2.XMLHTTP.4.0",
"Msxml2.XMLHTTP.3.0",
"Msxml2.XMLHTTP",
"Microsoft.XMLHTTP"];
for(var i = 0; i < msXml.length; i++) {
try{
request = new ActiveXObject(msXml[i]);
break;
}catch(e) {
request = null;
}
}
if (request == null) {
alert("Sorry! Because you are using a browser that does not support AJAX, the server can not process a r
相关文档:
最近网上提的很多的一个新概念就是 AJAX 了, 那么, AJAX 是什么呢? 以下内容引用网上资料:
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它有机地包含了以下几种技术:
Ajax(Asynchronous JavaScript + XML)的定义
基于 web标准(sta ......
AJAX无疑是2005年炒的最热的Web开发技术之一,当然,这个功劳离不开Google。我只是一个普通开发者,使用AJAX的地方不是特别多,我就简单的把我使用的心得说一下。(本文假设用户已经具有JavaScript、HTML、CSS等基本的Web开发能力)
[AJAX介绍]
Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页 ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/style.css" />
<meta http-equiv="Content-Type" content="text/html; ......