日期:2014-05-16  浏览次数:20332 次

【转】用js创建XMLHttpRequest对象池
  1. //使用literal语法定义一个对象:XMLHttp ??
  2. var?XMLHttp?=? ??
  3. { ??
  4. ????//定义第一个属性,该属性用于缓存XMLHttpRequest对象的数组 ??
  5. ????XMLHttpRequestPool:?[], ??
  6. ????//对象的第一个方法,该方法用于返回一个XMLHttpRequest对象 ??
  7. ????getInstance:function() ??
  8. ????{ ??
  9. ????????//?从XMLHttpRequest对象池中取出一个空闲的XMLHttpRequest ??
  10. ????????for?(var?i?=?0;?i?<?this.XMLHttpRequestPool.length;?i?++) ??
  11. ????????{ ??
  12. ????????????//如果XMLHttpReuqest的readyState为0,或者为4, ??
  13. ????????????//都表示当前的XMLHttpRequest对象为闲置的对象 ??
  14. ????????????if?(this.XMLHttpRequestPool[i].readyState?==?0?||? ??
  15. ????????????????this.XMLHttpRequestPool[i].readyState?==?4) ??
  16. ????????????{ ??
  17. ????????????????return?this.XMLHttpRequestPool[i]; ??
  18. ????????????} ??
  19. ????????} ??
  20. ????????//如果没有空闲的,将再次创建一个新的XMLHttpRequest对象 ??
  21. ????????this.XMLHttpRequestPool[this.XMLHttpRequestPool.length]? ??
  22. ????????????=?this.createXMLHttpRequest(); ??
  23. ????????//返回刚刚创建的XMLHttpRequest对象 ??
  24. ????????return?this.XMLHttpRequestPool[this.XMLHttpRequestPool.length?-?1]; ??
  25. ????}, ??
  26. ????//创建新的XMLHttpRequest对象 ??
  27. ????createXMLHttpRequest:function() ??
  28. ????{ ??