- 浏览: 49971 次
- 性别:
- 来自: 南京
最新评论
-
wangying95599:
type= "Hello/css " ty ...
GWT CSS -
oceanG_Y:
这个框架和struts1的差不多,也是分三部分,视图,控制器, ...
配置mojavi -
liyh:
你觉得这个框架怎么样。
配置mojavi -
chaiyanxing:
怎么不写完呀?
Struts2 分页 -
hurui3550:
原文地址:
http://s2container.seasar ...
开源框架 Seasar2
在ajax应用中,通常一个页面要同时发送多个请求,如果只有一个XMLHttpRequest对象,前面的请求还未完成,后面的就会把前面的覆盖 掉,如果每次都创建一个新的XMLHttpRequest对象,也会造成浪费。解决的办法就是创建一个XMLHttpRequset的对象池,如果池里有 空闲的对象,则使用此对象,否则将创建一个新的对象。
下面是我最近写的一个简单的类:
/**
* XMLHttpRequest Object Pool
*
* @author legend <legendsky@hotmail.com>
* @link http://www.ugia.cn/?p=85
* @Copyright www.ugia.cn
*/
var XMLHttp = {
_objPool : [],
_getInstance : function ()
{
for (var i = 0 ; i < this . _objPool . length ; i ++)
{
if ( this . _objPool [ i ]. readyState == 0 || this . _objPool [ i ]. readyState == 4 )
{
return this . _objPool [ i ];
}
}
// IE5中不支持push方法
this . _objPool [ this . _objPool . length ] = this . _createObj ();
return this . _objPool [ this . _objPool . length - 1 ];
},
_createObj : function ()
{
if ( window . XMLHttpRequest )
{
var objXMLHttp = new XMLHttpRequest ();
}
else
{
var MSXML = [ 'MSXML2.XMLHTTP.5.0' , 'MSXML2.XMLHTTP.4.0' , 'MSXML2.XMLHTTP.3.0' , 'MSXML2.XMLHTTP' , 'Microsoft.XMLHTTP' ];
for(var n = 0 ; n < MSXML . length ; n ++)
{
try
{
var objXMLHttp = new ActiveXObject ( MSXML [ n ]);
break;
}
catch ( e )
{
}
}
}
// mozilla某些版本没有readyState属性
if ( objXMLHttp . readyState == null )
{
objXMLHttp . readyState = 0 ;
objXMLHttp . addEventListener ( "load" , function ()
{
objXMLHttp . readyState = 4 ;
if ( typeof objXMLHttp . onreadystatechange == "function" )
{
objXMLHttp . onreadystatechange ();
}
}, false );
}
return objXMLHttp ;
},
// 发送请求(方法[post,get], 地址, 数据, 回调函数)
sendReq : function ( method , url , data , callback )
{
var objXMLHttp = this . _getInstance ();
with ( objXMLHttp )
{
try
{
// 加随机数防止缓存
if ( url . indexOf ( "?" ) > 0 )
{
url += "&randnum=" + Math . random ();
}
else
{
url += "?randnum=" + Math . random ();
}
open ( method , url , true );
// 设定请求编码方式
setRequestHeader ( 'Content-Type' , 'application/x-www-form-urlencoded; charset=UTF-8' );
send ( data );
onreadystatechange = function ()
{
if ( objXMLHttp . readyState == 4 && ( objXMLHttp . status == 200 || objXMLHttp . status == 304 ))
{
callback ( objXMLHttp );
}
}
}
catch ( e )
{
alert ( e );
}
}
}
};
* XMLHttpRequest Object Pool
*
* @author legend <legendsky@hotmail.com>
* @link http://www.ugia.cn/?p=85
* @Copyright www.ugia.cn
*/
var XMLHttp = {
_objPool : [],
_getInstance : function ()
{
for (var i = 0 ; i < this . _objPool . length ; i ++)
{
if ( this . _objPool [ i ]. readyState == 0 || this . _objPool [ i ]. readyState == 4 )
{
return this . _objPool [ i ];
}
}
// IE5中不支持push方法
this . _objPool [ this . _objPool . length ] = this . _createObj ();
return this . _objPool [ this . _objPool . length - 1 ];
},
_createObj : function ()
{
if ( window . XMLHttpRequest )
{
var objXMLHttp = new XMLHttpRequest ();
}
else
{
var MSXML = [ 'MSXML2.XMLHTTP.5.0' , 'MSXML2.XMLHTTP.4.0' , 'MSXML2.XMLHTTP.3.0' , 'MSXML2.XMLHTTP' , 'Microsoft.XMLHTTP' ];
for(var n = 0 ; n < MSXML . length ; n ++)
{
try
{
var objXMLHttp = new ActiveXObject ( MSXML [ n ]);
break;
}
catch ( e )
{
}
}
}
// mozilla某些版本没有readyState属性
if ( objXMLHttp . readyState == null )
{
objXMLHttp . readyState = 0 ;
objXMLHttp . addEventListener ( "load" , function ()
{
objXMLHttp . readyState = 4 ;
if ( typeof objXMLHttp . onreadystatechange == "function" )
{
objXMLHttp . onreadystatechange ();
}
}, false );
}
return objXMLHttp ;
},
// 发送请求(方法[post,get], 地址, 数据, 回调函数)
sendReq : function ( method , url , data , callback )
{
var objXMLHttp = this . _getInstance ();
with ( objXMLHttp )
{
try
{
// 加随机数防止缓存
if ( url . indexOf ( "?" ) > 0 )
{
url += "&randnum=" + Math . random ();
}
else
{
url += "?randnum=" + Math . random ();
}
open ( method , url , true );
// 设定请求编码方式
setRequestHeader ( 'Content-Type' , 'application/x-www-form-urlencoded; charset=UTF-8' );
send ( data );
onreadystatechange = function ()
{
if ( objXMLHttp . readyState == 4 && ( objXMLHttp . status == 200 || objXMLHttp . status == 304 ))
{
callback ( objXMLHttp );
}
}
}
catch ( e )
{
alert ( e );
}
}
}
};
示例:
<
script type
=
"text/javascript"
src
=
"xmlhttp.js"
>
</script>
<script type="text/javascript">
function test(obj)
{
alert(obj.statusText);
}
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
alert('Pool length:' + XMLHttp._objPool.length);
</script>
<script type="text/javascript">
function test(obj)
{
alert(obj.statusText);
}
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
XMLHttp.sendReq('GET', 'http://www.ugia.cn/wp-data/test.htm', '', test);
alert('Pool length:' + XMLHttp._objPool.length);
</script>
源代码里有中文的注释,是ansi的,如果你的网站或ie下选择编码为UTF-8,可能会导致错误,你把你ie的编码改成gb2312看看,或者去掉文件里的中文注释
发表评论
-
Extjs grid数据手动排序
2010-01-10 11:31 0在使用ExtJS的grid控件的时候,经常需要对gri ... -
关于 商业智能
2009-04-21 00:29 143各位版油们,有没有是做商务智能行业的,请大家谈谈对该行业未来. ... -
程序员的七种武器
2008-11-22 23:43 795程序员的七种武器 第 ... -
java 数据库 基础知识
2008-10-18 13:32 983数据库方面: 1. 存储过程和函数的区别 存储过程是用 ... -
java 基本知识
2008-10-18 13:31 849面向对象的特征有哪些方面 1. 抽象: 抽 ... -
GWT Grid 列合并
2008-05-31 12:08 891我建了一个10行2列的grid的表格;我想让某一行或多行的两列 ... -
GWT CSS
2008-05-29 23:25 1260在Hello.gwt.xml里加上 <styleshee ... -
DIV 层 透明
2008-05-27 22:32 1856<center><div style=&qu ... -
API Developer's Guide: Java
2008-05-19 23:44 1024引自:http://code.google.com/apis/ ... -
妻子的说明书
2008-05-19 17:16 749妻子的说明书 (已经国家食药监局注册司备案)【品名】妻子 ... -
IE Developer
2008-05-15 11:13 819Name:piaodown.com Serial:88QWS- ... -
GWT学习笔记(一)
2008-05-12 20:20 1760Language Support Intrinsi ... -
GWT开发的8个忠告
2008-05-11 22:06 1088Google Web工具包(GWT)确 ... -
GWT开发中注意点:
2008-05-11 21:47 1180引自:http://www.blogjava.net/stee ... -
Google Web ToolKit
2008-05-10 00:49 818引自:http://www.ibm.com/developer ... -
Java with Crystal Reports
2008-05-08 23:26 5210引用自:http://forum.java.sun.com/t ... -
工作中,一般都会用几种语言?
2008-05-05 13:48 1422我工作中,用JAVA和PHP,还有C#,交替开发;都要给累死了 ... -
开源框架 Seasar2
2008-04-25 16:51 9442在日本,Seasar2这个框架十分的流行。Seasar2其实就 ... -
Struts2 分页
2008-04-25 16:31 2809一、 准备工作 开发环境:MyEclipse5.0 ... -
Spring 配XML的技巧!
2008-04-25 14:16 750Spring 配XML的技巧! 1. 避免使用自动装配 Spr ...
相关推荐
NULL 博文链接:https://justsee.iteye.com/blog/690353
在ajax应用中,通常一个页面要同时发送多个请求,如果只有一个XMLHttpRequest 对象,前面的请求还未完成,后面的就会把前面的覆盖掉,如果每次都创建一个新的XMLHttpRequest对象,也会造成浪费。解决的办法就是创建...
ajax XMLHttpRequest。。。。。。
在ajax应用中,通常一个页面要同时发送多个请求,如果只有一个XMLHttpRequest对象,前面的请求还未完成,后面的就会把前面的覆盖掉,如果每次都创建一个新的XMLHttpRequest对象,也会造成浪费。解决的办法就是创建一...
XMLHttpRequest对象池和innerHTML中JS解析代码 博文链接:https://dabao.iteye.com/blog/64577
.老生常谈—XmlHttpRequest 代码 代码如下: var xmlHttp; function createXmlHttpRequest() { if... } } 如果不用Jquery手写javascript,上面要改成XmlHttpRequest对象池,这就不写了。 .触发AutoComplete函数 代码
2、创建XMLHttpRequest兼容主流浏览器,采用连接池管理方式,连接池大小可设置,初始为20. 3、封装了访问Ajax和WebService的API。WebService兼容SOAP1.1和SOAP1.2 4、该资源为作者本人劳动成果。使用方式可以参考另...
91 6.2 CSS 92 6.3 XSLT 94 6.4 小结 96 第7章 Ajax简介 97 7.1 Ajax简介 97 7.2 Ajax技术核心 100 7.2.1 XMLHttpRequest对象的常用方法 100 7.2.2 标准的XMLHttpRequest属性 101 7.3 一个简单的Ajax实例 101 7.4 小...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置Struts开发...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置Struts开发...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置Struts开发...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置Struts开发...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置...
14.2、XMLHttpRequest对象 14.3、第一个AJAX程序 14.4、异步验证 14.5、返回XML数据 14.6、本章摘要 14.7、开发实战讲解(基于Oracle数据库) 第15章 Struts基础开发 15.1、Struts简介 15.2、配置...