最近在《程序员》杂志2006年11期中看到一篇文章,标题为《Prototype的开发与应用实践》,感觉很不错,在这里我理解了一下这篇文章的要点,希望能和各位同仁共享。
Prototype包括三的内容:1.提供全局的函数,来替代原先重复的代码;2.对现在的Javascript, Dom等对象进行扩展,提供访问的接口;3.对Ajax的封装,使得开发Ajax更容易。下面进行逐一的介绍。
1. 全局的函数
$()函数:来替代document.getElementById()方法。如果传入多个ID,则返回一个Array。
用法: var ele = $('your element's id');
$F()函数:用以返回表单控件的值,比如:文本框,下拉列表,必须是有value属性的控件,传入控件的ID。
用法:var ele = $F('your element's id');
$A()函数:可以接受任何一个枚举类型转换为一个数组。
用法:var nodeList = document.getElementsByTagName();
var nodeArray = $A(nodeList);
var message = "The All Message: ";
nodeArray.each(
function(node){
message += node.type + " | " + node.name + " | " + node.value + "/r/n"
}
);
alert(message);
$H()函数:将传入的对象转换一个可枚举的和联合数组类似的Hash对象。
$R()函数:是对 new ObjectRange(lowBound, upperBound, excludeBounds)的缩写和替代。
Try.these()函数:使用一系列函数作为参数。返回第一个成功执行函数的有返回值。这样就不用if else去判断了。
用法:Try.these(function {return 1;}, function{return 2}......);返回1。
在Ajax中,重要的是XmlHttpRequest对象,在实例化这个对象时可以用这方法,如下所示:
var xmlHttp = Try.these(function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest()}) || false;
Prototype对Javascript的Object, Number, Function, String, Array, Event 等对象都进行了扩展,创建了一些新的对象和类,并在基础上有很多公用函数,比如each(), any(), collect()等。
除此之外,Prototype还对Ajax提供的支持,主要由Ajax.Request和Ajax.Updater两个来完成。
Ajax.Request:返回的文本为xml格式。
用法:有一个books.xml文件。如下:
<?xml version="1.0" encoding="gbk"?>
<books></books>
<book></book>
AAAAAAA
<page>111</page>
<book></book>
<book></book>
BBBBBBB
<page>222</page>
<book></book>
function doAjaxRequest(){
var url = "books.xml";
var ajax = new Ajax.Request(url, {method:"get", onComplete:showResponse});
}
function showResponse(request){
window.alert(request.responseText);
}
method为方法类型,get,post......
onComplete为回调函数。
Ajax.Updater:返回的文本为HTML代码。
用法:有一个JSP页面ajax.jsp如下:
Ajax Updater%>
function doAjaxUpdater(){
var url = "ajax.jsp";
var params = "field=all&show=true";
var ajax = new Ajax.Request("divContent", url, {method:"get", parameters:params});
}
"divContent"为要将返回内容插其中的控件ID。
相关推荐
Prototype学习笔记(一)(二)涵盖了这一主题的深入探讨,旨在帮助开发者更好地理解和利用这个特性。在本篇文章中,我们将详细阐述Prototype的核心概念、作用以及如何在实际编程中应用。 首先,Prototype是...
这篇"prototype学习笔记"可能探讨了如何利用原型链实现面向对象编程的关键技术。以下是对这个主题的详细解析。 首先,理解`prototype`的基本含义是关键。在JavaScript中,每个函数都有一个`prototype`属性,这个...
### Prototype学习笔记(最新整理) #### 1. Prototype是什么? Prototype是一个由Sam Stephenson编写的JavaScript库,旨在简化客户端脚本编程,使开发者能够轻松创建动态的、交互式的Web应用程序。该库通过提供一...
总结起来,《Prototype开发笔记》是学习和理解Prototype框架的重要资源,它涵盖了从基本的DOM操作到复杂的Ajax交互,以及JavaScript语言的扩展和增强。通过深入学习这份笔记,开发者能够有效地利用Prototype来构建...
在JavaScript中,`prototype`是实现面向对象编程的关键机制,它允许对象共享属性和方法,从而实现类的概念。本文将深入探讨`prototype`的核心概念、使用方式以及与之相关的`Class.create()`和`Object.extend()`两个...
在本篇"prototype笔记(9)----结合Prototype和JSON开发AJAX"中,我们将深入探讨如何利用Prototype JavaScript库与JSON(JavaScript Object Notation)技术来高效地开发异步JavaScript应用程序,也就是我们常说的AJAX...
本笔记将深入探讨`Prototype`机制及其在实际开发中的应用。首先,我们从基本概念出发,理解`Prototype`的核心原理。 `Prototype`是JavaScript中每个对象所固有的特性,它为对象提供了继承的能力。在JavaScript中,...
这个压缩包中的"Prototype学习笔记.doc"很可能是对Prototype模式深入理解的详细文档。下面将从Prototype设计模式的基本概念、在JavaScript中的应用、与Ajax的关系以及如何与其他技术如Java和JavaScript库交互等方面...
万一你没有使用过大名鼎鼎的prototype.js,那么让我来告诉你,prototype.js是由Sam Stephenson写的一个javascript类库。这个构思奇妙,而且兼容标准...我想,在我学习完它之后,把我学到的东西分享给大家是件不错的事。
本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...
### Prototype.js 开发笔记知识点详解 #### 1.1 Prototype.js 是什么? Prototype.js 是一个由 Sam Stephenson 开发的 JavaScript 库。该库的主要目的是简化 Web 应用程序的开发过程,尤其针对那些需要高度交互性...
《Prototype开发应用手册:深入解析与实践》 Prototype是一个强大的JavaScript库,由Sam Stephenson创建,旨在提升...通过学习和掌握Prototype,开发者可以更好地驾驭JavaScript,创造出更具交互性的Web应用。
以上就是压缩包中的设计模式学习笔记涉及到的主要内容。通过对这些模式的理解和应用,开发者可以更好地解决软件设计中的问题,提升软件的质量和可维护性。每种模式都有其适用场景,理解其背后的意图和应用场景是关键...
在JavaScript的世界里,Prototype库是一个非常重要的框架,它为JavaScript的原生对象提供了大量的扩展,大大简化了DOM操作。在Prototype中,`Element`和`Selector`是两个核心概念,它们是实现高效和便捷的DOM操作的...
这篇学习笔记主要涵盖了JavaScript的基础语法和客户端JavaScript的相关知识。 1. **JavaScript基本语法**: - **变量声明**:未声明的变量尝试读取时会产生错误,而写入未声明的变量会创建一个全局变量。 - **...