/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者: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脚本库
今天,我们就来讨论如何解决jQuery与Prototype并存的冲突问题。 首先,我们需要了解为什么jQuery和Prototype会出现冲突。 jQuery和Prototype都是JavaScript框架,它们都使用 `$` 变量来表示自己的对象。然而, `$` ...
在IE8和9中,这可能是由于 Prototype库中的某些代码段没有被正确地执行,或者与浏览器的内置对象或API产生了冲突。 在研究这个问题时,我们可以从以下几个方面入手: 1. **理解Prototype的版本历史**:Prototype ...
Prototype是JavaScript库的名称,表明文件与JavaScript编程语言紧密相关,特别是使用Prototype库进行开发的部分。"中文版"标签进一步确认了这些文档是为中文用户设计的,降低了语言障碍,便于中文开发者学习和使用...
"Johnson"这个名字可能指的是一个特定的插件或工具,它扩展了Prototype的功能,或者提供了与Prototype库协同工作的解决方案。 4. **johnson用法说明.txt** - 这是一个文本文件,提供了关于"johnson.js"的使用指南。...
Prototype是JavaScript库,它为浏览器环境提供了强大的对象扩展和功能,尤其在处理DOM(文档对象模型)和Ajax交互时。这个压缩包包含了Prototype库的多个版本的手册和源代码文件,便于开发者理解和使用。 首先,...
Prototype库致力于提高JavaScript在不同浏览器之间的兼容性,如对IE6/7的一些特有问题进行了处理。 总结,Prototype 1.5.1使用手册涵盖了该库的主要特性和用法,对于前端开发者来说,是一个不可或缺的学习和参考...
**mootools与Prototype库** MooTools和Prototype是两种流行的JavaScript库,它们为Web开发者提供了丰富的功能,简化了JavaScript的编程。虽然这两个库的名字相似,但它们是完全不同的项目,各自有着独特的特点和...
学习Prototype开发应用手册,你还可以掌握到 Prototype 如何与其他库(如jQuery、MooTools等)共存的策略,以及如何有效地利用Prototype进行模块化开发。同时,通过阅读源码,开发者可以深入理解其内部机制,提升...
1. **介绍与安装**:解释Prototype库的起源、目标以及如何在项目中引入和设置。 2. **核心概念**:涵盖JavaScript原型继承、对象构造函数、闭包等基础概念。 3. **DOM操作**:详细讲解如何使用Prototype库来选择、...
Prototype 是一个广泛使用的JavaScript库,它为浏览器端的开发提供了许多强大的功能,特别是对于处理DOM操作、Ajax交互以及对象扩展等方面。这个“prototype帮助中文文档”涵盖了Prototype库的核心概念、方法和最佳...
它与流行的库如jQuery和Dojo相比,虽然在市场份额上可能略显逊色,但在某些特定场景下,如需要强大的面向对象特性时,Prototype.js仍然是一个理想的选择。 总之,Prototype_1.7.3.js以其丰富的功能、高效的性能和对...
Prototype 考虑到了浏览器兼容性问题,对不同版本的JavaScript引擎进行了优化。同时,它还提供了`document.observe()`和`document.stopObserving()`用于事件监听和取消监听,以提高性能。 ### 8. `Prototype.chm`...
Prototype库通常会提供一套完整的Ajax解决方案,允许开发者在不刷新整个页面的情况下与服务器进行异步交互,包括发送请求、处理响应和更新DOM。 通过这个Prototype demo,开发者可以学习到如何利用Prototype库来...
**关键词与标签:** Prototype, JavaScript, 库, 开发, 手册 **正文:** Prototype 是一个广泛使用的开源 JavaScript 库,它为JavaScript编程提供了一系列强大的工具和功能,旨在简化DOM操作,增强类型检测,并提供...
Prototype.js 是一个广泛使用的JavaScript库,它为JavaScript语言增加了许多实用的功能,使开发Web应用程序变得更加简单。这个压缩包包含了Prototype的1.6.0版本,包括中文版和英文版的文档,以及源代码文件。 首先...
标题中的"prototype1.6.0"多次提及,暗示了我们正在讨论JavaScript库Prototype的1.6.0版本。Prototype是Web开发中一个强大的JavaScript框架,它为浏览器环境提供了许多实用的功能,增强了JavaScript语言的面向对象...
8. **Prototype与其他库的兼容性**:尽管Prototype对JavaScript原生对象进行了扩展,但它也提供了`Prototype.Browser`对象来检测浏览器特性,以及`Prototype.noConflict()`方法来解决与其他库的命名冲突问题。...
了解 Prototype 与其他 JavaScript 库,如 jQuery、AngularJS 或 React 的差异,可以帮助你选择最适合项目需求的工具。比如,Prototype 更注重于提供基础功能,而 jQuery 则在易用性和社区支持上更胜一筹。 ### 10....