/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn
电邮:wallimn@sohu.com
博客:http://wallimn.bokee.com
http://blog.csdn.net/wallimn
时间:2006-11-15
/***********本人原创,欢迎转载,转载请保留本人信息*************/
最近使用Ajax技术做一个东东, 发现使用prototype库后,会导致flashget使用浏览器中的上下文菜单时,弹出个异常(异常的具体内容忘记了,意思好象是不支持指定的事件,而这个事件是个标准的事件)而无法正常下载。
分析了一下,可能是由于prototype库对大量系统的函数进行了扩展、改写,导致这个情况发生。我自己写了一个简单的对于xmlhttp的封装,进行了一下测试,发现就没有这个问题了。
由此我觉得,使用prototype到底有没有必要。对我而言,我使用这个库,基本上只用到了$()函数、Ajax.Request()两个东西,对于几个常用的功能,如:切换元素的使能状态、切换可见状态等我都自己写了几个相应的函数,简单而有效。由于prototype对系统函数的扩展和改写,不但影响了系统中其发JS代码的运行效率,也增加了出错了可能。因此,我觉得,如果没有使用prototype进行非常复杂的运用,还是不用的好。
下面贴出我封装的xmlhttp函数。虽然功能不是很强大,但是够用了。
//var myAjax = new Ajax.Request("<%=path%>/MvMgr.do?method=mvvote&id=<%=mid%>", {method:'get',parameters:"score="+myscoreval, onComplete:mvvoteover});
function AjaxRequest(asyn){
if(typeof asyn=="undefined")this.asyn=true;
else this.asyn=asyn;
this.xmlDoc=null;
this.dealxml=null;
this.onloadAction=null;
}
AjaxRequest.prototype.loadurlover=function(myxmldoc){
this.check=function(){
if(myxmldoc.onloadAction!=null){
if((!myxmldoc.xmlDoc.readyState)||(myxmldoc.xmlDoc.readyState == 4)){
if(myxmldoc.onloadAction!=null)
myxmldoc.onloadAction(myxmldoc.xmlDoc);
myxmldoc=null;
}
}
};
return this.check;
}
AjaxRequest.prototype.submit=function(filePath,onloadfunc,postMode,postVars){
this.onloadAction = onloadfunc;
try{
if(this.xmlDoc==null)
this.xmlDoc = new XMLHttpRequest();
this.xmlDoc.open(postMode?"POST":"GET",filePath,this.asyn);
if(postMode)
this.xmlDoc.setRequestHeader('Content-type','application/x-www-form-urlencoded');
this.xmlDoc.onreadystatechange=new this.loadurlover(this);
this.xmlDoc.send(null||postVars);
}
catch(e){
if(this.xmlDoc==null)
this.xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlDoc.open(postMode?"POST":"GET",filePath,this.asyn);
if(postMode)this.xmlDoc.setRequestHeader('Content-type','application/x-www-form-urlencoded');
this.xmlDoc.onreadystatechange= new this.loadurlover(this);
this.xmlDoc.send(null||postVars);
}
}
分享到:
相关推荐
prototype js脚本库prototype js脚本库prototype js脚本库prototype js脚本库
prototype1.6.0prototype1.6.0prototype1.6.0prototype1.6.0
找到了一篇jQuery与Prototype并存的冲突的解决方法
对prototype的用法说明
prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值。 --- 在prototype.js中,prototype对象是实现面向对象的一个重要机制。 每个函数(Function)就是一个对象,函数对象都有一...
prototype的JS文件prototype的JS文件prototype的JS文件prototype的JS文件
资源名称:Ajax实战: Prototype与scriptaculous篇内容简介:这是一本讲述 Prototype和 scriptaculous的实用性极强的综合指南。本书在简要介绍这两个库在宏观应用中的意义之后,再通过 QuickGallery图片...
1.手册与教程: CSS 2.0_CN.chm;CSS 2.0样式表中文手册(推荐); VBscript_Refer_CN.chm:vbscript中文参考手册(推荐); javascript_Refer_CN.CHM:javascript中文参考手册(推荐); JavaScript_Refer_CN.rar:javascript中文...
prototype1.5.1
prototype1.7.2 包括 js 库与完整源码包 带完整注释。
prototype帮助中文文档,prototype的源代码
prototype.js不仅是一个有很大实用价值的js库,而且有很高的学习价值,所以我强烈建议B/S开发人员和对JS开发感兴趣的朋友去浏览一些它的源代码,其中有很多的珠玑,你绝对会觉得读它的源代码是一种享受,当然要读得...
prototype的Ajax介绍
prototype 1.3 源码解读
prototype.js是一个非常优雅的javas cript基础类库,对javas cript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。 prototype.js不仅是一个有很大实用价值的js库,而且有很高...
prototype.js是一个非常优雅的javascript基础类库,对javascript做了大量的扩展,而且很好的支持Ajax,国外有多个基于此类库实现的效果库,也做得很棒。 prototype.js不仅是一个有很大实用价值的js库,而且有很...
包括prototype js框架的源码与API
1、 Prototype-1.6.0 中文版 2、Prototype-1.6.0 英文版 3、Prototype.js