1.概述
Prototype.js 是Ruby On Rails的副产品, Javascript编写者的一把小军刀,提供了Ruby风格的简写语法和实效的函数,更难得的是完全跨浏览器,让大家舒舒服服写出又精简又不用愁心兼容的的JS代码,SpringSide 已经离不开它了。
1.1 参考资料
1.2 安装使用
prototype.js 只有一个js文件,直接在html里include就可以了。因为使用颇广,SpringSide已加入公共的meta.jsp里
<script src="<c:url value="/scripts/prototype.js"/>" type="text/javascript"></script>
2. 功能介绍
2.1 最爱$系列
我最喜欢是可以用$ {"bookDiv"} 等价于通用于IE,FireFox的长长的document.getElementByID("bookDiv")
值得留意的还有和CSS一样的批量选择语法$$(),如$$('div#left_books).each(....) ,CSS的语法指它的#. 等符号及嵌套的定义
另外$F()可以取得Form里的field 的 value。
Element系列有很多实用的函数:
$('bookdiv').update('<p>...</p>'); $('bookdiv').show();
$('bookdiv').hide();
$('bookdiv').toggle(); $('bookdiv').visiable(); $('bookdiv').scrollTo();
.....还有很多
在1.5RC1 之后,Element系列函数会返回自身,因此可以连续操作了,据说学自JQuery,如$('bookdiv').show().scrollTo();
2.2 传统的Ajax
传统的基于URL的ajax函数简单实用。
new Ajax.Updater('bookdiv',"foo.jsp");
此函数的还有很多可选的参数,参数列表见此。如:
new Ajax.Updater('bookdiv',"foo.jsp", {onComplete: initObserve});
如果要异步执行ajax, 更新bookdiv后需要重新执行initObserve, onComplete的设置就刚好满足你的要求。
另有可定时执行Ajax的PeriodicalUpdater。
2.3 Form系列函数也不错
Form.serialize 将Form中所有Input对象的值转化为一个URL String,方便把Form转为用 URL Get方式的Ajax提交,最经典的用Ajax提交Form的例子:
<form action="/action/here" method="post"
onsubmit="new Ajax.Updater('div_to_be_updated', '/action/here', {parameters:Form.serialize(this)}); return false;">
下面两个函数可以监察Form里数值变化的情况,典型应用是离开本页时,提醒用户还有没有保存的修改。和传统的检查方式相比,下面的函数是用户有 input的动作时主动调度myCallBackFunction设置一个flag,而不是页面提交时才进行批量检查,加速提交的速度。
new Form.EventObserver($("myform"), myCallBackFunction);
new Form.Element.EventObserver($("myfield", myCallbackFunction);
另外,Form.focusFirstElement , Form.getInputs等函数也很实用 。
2.4 Event系列
除了后述的Observe模式外,还有下列保证兼容IE和FF的事件函数:
1.Event.element(event),返回触发事件的element.
2.Event.findElement(event,tagName),搜索DOM tree里事件的响应链里的第一个符合tagName的element.
3.pointerX(event),pointerY(event)等
还定义了一些标准KeyCode,见:http://www.sergiopereira.com/articles/prototype.js.html#Reference.Extensions.Event
3.Pattern
3.1 Ruby风格
一些Ruby风格的语法。
1.循环函数
elements.each( function(element){
alert(element);
});
2. 不定参数
new Ajax.Updater('mydiv', '/foo/bar', {asynchronous:true});
3.2 Observe模式达到搜索引擎Friendly
Observe模式,就是连接仍然以<a href="foo.jsp" >形式编写链接,用Observe为其加入onClick事件的侦听。 这样,当搜索引擎访问时,就会访问传统的URL;而用户使用浏览器访问时,就会被Observe转为使用onClick事件的Ajax效果。
SpringSide推荐用$${},批量选择element进行设置onclick 事件,ajax的访问原来的<a href>。
$$('div#left_books * a\[href\]').each(function(element){
Event.observe(element,'click',handlerCilckEvent,false);
});
function handlerCilckEvent(event){
var element = Event.element(event);
new Ajax.Updater('bookdiv',element.href);
}
分享到:
相关推荐
《prototype_1.7.3.js:JavaScript框架的里程碑》 在JavaScript的世界里,Prototype库是一个不可或缺的重要组成部分,尤其在Web开发领域,它为开发者提供了强大的功能和便利性。Prototype_1.7.3.js是这个库的一个...
Prototype是JavaScript库,它为浏览器环境提供了强大的对象扩展和功能,尤其在处理DOM(文档对象模型)和Ajax交互时。这个压缩包包含了Prototype库的多个版本的手册和源代码文件,便于开发者理解和使用。 首先,...
标题"prototype_PrototypeJS1.6_"中提到的"Prototype"是一个JavaScript库,它为JavaScript编程提供了一套丰富的工具集,主要用于简化DOM操作、创建Ajax应用以及实现对象的继承机制。"1.6版本"表明这是该库的一个特定...
### Prototype框架:深入理解与应用 #### 一、概述 **Prototype**是一个旨在简化动态Web应用程序开发的JavaScript框架。由Sam Stephenson创建,并于2005年2月作为开源项目发布。Prototype的核心团队成员包括Thomas...
Prototype.js 是一个广泛使用的JavaScript库,它为JavaScript语言增加了许多实用的功能,使开发Web应用程序变得更加简单。这个压缩包包含了Prototype的1.6.0版本,包括中文版和英文版的文档,以及源代码文件。 首先...
### Prototype的Ajax介绍 #### 一、Prototype框架与Ajax **Prototype** 是一款JavaScript库,其设计目的是为了简化客户端脚本编程。它提供了一系列高级功能,使得开发人员能够更加高效地构建动态网页应用。其中,*...
标题提及了两个版本的Prototype文档,分别是"Prototype_1.4.doc"和"Prototype_1.5.1.chm"。Prototype是JavaScript库的一个早期且广泛使用的版本,它提供了许多实用的功能,如对象扩展、事件处理、Ajax操作等,极大地...
Prototype JavaScript 框架是Web开发中的一个关键工具,它为JavaScript编程提供了许多实用的类库函数和设计模式。这个“Prototype 1.6中文手册 chm+prototype 1.6.js源码 最新版”正是面向希望深入学习和掌握...
Prototype 是一个广泛使用的JavaScript库,它为浏览器端的开发提供了许多强大的功能,特别是对于处理DOM操作、Ajax交互以及对象扩展等方面。这个“prototype帮助中文文档”涵盖了Prototype库的核心概念、方法和最佳...
在JavaScript中,`prototype`是一个核心概念,它与对象继承紧密相关。`prototype`机制是JavaScript实现面向对象编程的关键部分,允许我们为对象添加或扩展属性和方法。在这个"非常有用的prototype实例"中,我们可以...
**Prototype JavaScript 库** Prototype 是一个广泛使用的JavaScript库,它为Web开发提供了强大的工具和功能。这个库的主要目标是简化JavaScript编程,通过提供面向对象的语法、强大的DOM操作以及Ajax功能,来提升...
《Prototype开发者手册(中文版)》是一本专为JavaScript开发者准备的重要参考资料,它详细介绍了Prototype JavaScript框架的使用方法和核心概念。Prototype是一个广泛使用的开源JavaScript库,它的目标是简化...
Prototype.js 是一个广泛使用的JavaScript库,它为JavaScript编程提供了许多实用的功能,极大地简化了DOM操作、事件处理、Ajax交互以及对象扩展等任务。这个压缩包包含的“prototype.js”文件就是Prototype.js的核心...
《Prototype 1.5.1使用手册》是针对JavaScript库Prototype的一个详细指南,该库是Web开发中的一个强大工具,尤其在处理DOM操作、Ajax交互和函数增强方面表现卓越。本手册以.chm(Compiled Help Manual)格式提供,...
Prototype是JavaScript库,它扩展了JavaScript的基本对象,提供了强大的面向对象编程功能,使得在JavaScript中进行复杂的编程操作变得更加简单。这个“prototype从入门到精通”的教程涵盖了从基础概念到高级特性的...
### Prototype框架概览 #### 一、Prototype框架简介 **Prototype** 是一款JavaScript库,它为Web开发提供了强大的工具集,特别是在实现Ajax交互方面。该文档由知名的作者和开发者Marty Hall编写,针对的是...
**Prototype 1.6 中文版CHM**是JavaScript开发者的重要参考资料,它是Prototype.js库的中文版帮助文档。Prototype.js是一个强大的JavaScript库,它为Web开发提供了许多实用的功能,简化了DOM操作,增强了对象和数组...