Prototype忽略等待连接的方法
来源:互联网 发布:找北极星的软件 编辑:程序博客网 时间:2024/06/05 20:28
由于大量向服务器端发送请求,IE7大概是十个线程左右的时候,在Ajax请求未成功响应时关掉浏览器,反复几次就会造成页面僵死,在head中加入一下代码,我的理解是拦截每一个实例化得Request对象并分配响应的handler,这样就可以使ajax发送请求在onload方法中执行,避免了unonload方法无法调用导致连接无法释放的现象。
- Ajax.Request0 = Ajax.Request;
- var mArrUpdaters = [];
- Ajax.Request = function(a, b, c, d, e, f){
- mArrUpdaters.push([a, b, c, d, e, f]);
- }
- Event.observe(window, 'load', function(){
- for(var i=0;i<mArrUpdaters.length;i++){
- var args = mArrUpdaters[i];
- new Ajax.Request0(args[0], args[1], args[2], args[3], args[4], args[5]);
- }
- mArrUpdaters = null;
- Ajax.Request = Ajax.Request0;
- });
- if (window.attachEvent) {
- var events= ['data','onmouseover','onmouseout','onmousedown','onmouseup','ondblclick','onclick','onselectstart','oncontextmenu'];
- window.attachEvent("onunload", function(){
- var elements = document.all;
- for(var i = 0 ; i < elements.length; i ++){
- var curElement = elements[i];
- for(var j = 0 ; j < events.length; j ++){
- curElement[events[j]] = null;
- }
- }
- if(window.ajaxArray){
- for(var j = 0 ; j < ajaxArray.length ; j ++){
- try{
- ajaxArray[j].abort();
- }catch(e){
- alert(e.message);
- }
- }
- }
- CollectGarbage();
- });
- }
在prototype中在Ajax.Base对象中加入abort()方法并要在对象初始化时将自身放入数组指定数组中,Ajax.Base对象代码如下所示:
在initialize中加入将当前对象加入数组的代码:
- //add one array to store AjaxObjects
- if(!window.ajaxArray){
- window.ajaxArray = [];
- }
- window.ajaxArray.push(this);
在Ajax.Base对象中加入abort()方法:
- abort : function() {
- this.transport.onreadystatechange = Prototype.emptyFunction;
- this.transport.abort();
- Ajax.activeRequestCount--;
- }
这样不管是调用Ajax.Updater还是Ajax.Request都会执行到此段代码并能成功在页面unonload时忽略所请求的连接避免页面僵死的现象。
- Prototype忽略等待连接的方法
- prototype的两个方法
- prototype的方法
- 忽略SIGPIPE信号的方法
- VC 忽略警告的方法
- Java的clone方法 prototype
- SQL 容易忽略的连接语句
- HttpClient不能忽略的细节:关闭连接
- httpClient容易忽略的细节-关闭连接
- prototype.js 显示等待状态
- Kernel 中几种等待的方法
- kill等待session的方法
- 字符串比较忽略全角半角,忽略大小写的方法
- 服务器等待 socket 连接时的心理活动
- Linux忽略大小写的查找方法
- Python字符串比较忽略大小写的方法
- Linux下忽略大小写查找的方法
- 容易被忽略的collection.frequency方法
- 初学c++
- 随机数函数
- 表A,有id,name,regdate.
- 6月25号
- 我觉得C语言是根本
- Prototype忽略等待连接的方法
- 永世流传的 24 句经典
- 【转】胖兔子粥粥出品的漫画:可以带来幸福的一本书……
- 关于数据库连接的一点理解,通过properties类获取数据库信息
- SharePoint中无法添加选择的web部件
- static和const关键字的作用
- 砍哪棵树?
- 在校生最后一学期的技术准备(三)在选定方向内选择某项
- 并行和串行计算