[转]Prototype 学习笔记

news/2024/7/5 12:21:19

 

Prototype 学习笔记

来源:http://blog.chinaunix.net/u/24912/showart.php?id=199954

 

最近在《程序员》杂志2006年11期中看到一篇文章,标题为《Prototype的开发与应用实践》,感觉很不错,在这里我理解了一下这篇文章的要点,希望能和各位同仁共享。

 
    Prototype是由Sam Stephenson开发的一个Javascirpt类库,也是其他框架的鼻祖,它是对Javascript中对象的一个扩展,并且对Ajax进行了封装。目前Prototype的版本是1.4,可以从 http://prototype.conio.net 下载最近的版本。
 
    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文件。如下:
   
        AAAAAAA
        111
   
   
        BBBBBBB
        222
   
 
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如下:
<%page contentType="text/html;charset=gbk" language="java" import="java.sql.*"%>
<%= 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。
 
    内容就这些,如有爱好者可以和我交流,欢迎大家相互沟通。




http://www.niftyadmin.cn/n/3652565.html

相关文章

数组,以及函数与之间数组传参

文章目录数组定义数组的方法方法一方法二方法三方法四获取数据列表的方法获取某个固定索引的元素获取数组长度数组包括的数据类型数值类型字符类型数组的遍历——*和的不同意思数组切片数组替换数组删除数组追加元素方法一方法二方法三方法四向函数传递数组参数从函数返回数组数…

[转]JavaScript基本属性方法参考

JavaScript基本属性方法参考 作者&#xff1a;标哥来源&#xff1a;http://www.phpchina.com/bbs/thread-14911-1-1.htmldocument.body.scrollTop 返回和设置当前竖向滚动条的坐标值&#xff0c;须与函数配合,document.body.scrollLeft 返回和设置当前横向滚动务的坐标值&am…

[原创]我自己想的几道入门PHP笔试题

我自己想的几道入门PHP笔试题&#xff0c;没有什么意义&#xff0c;只是自己随便想想&#xff0c;算是好玩。一、基础题1. 写出如下程序的输出结果$str1 null;$str2 false;echo $str1$str2 ? 相等 : 不相等;$str3 ;$str4 0;echo $str3$str4 ? 相等 : 不相等;$str5 0;$st…

数组排序的算法

文章目录冒泡排序基本思想算法思路算法脚本直接选择排序基本思想算法脚本反转排序基本思想实验冒泡排序 类似气泡上涌的动作&#xff0c;会将数据在数组中从小到大或者从大到小不断的向前移动 基本思想 冒泡排序的基本思想是对比相邻的两个元素值&#xff0c;如果满足条件就…

[原创]实现基于Memcache存储的Session类

实现基于Memcache存储的Session类 作者&#xff1a;heiyeluren博客&#xff1a;http://blog.csdn.net/heiyeshuwu我没事的时候写的自主实现Session功能的类&#xff0c;基于文件方式存储Session数据&#xff0c;测试基本通过&#xff0c;还比较好玩&#xff0c;实际应用没有意义…

sort、uniq、tr、cut正则表达式

文章目录sort命令语法格式常用选项实验uniq命令语法格式常用选项tr命令语法格式常用选项cut命令语法格式常用选项正则表达式正则表达式的组成基础正则表达式常见元字符&#xff1a;&#xff08;支持的工具&#xff1a;grep、egrep、sed、awk&#xff09;sort命令 以行为单位对…

[原创]实现基于文件存储的Session类

实现基于文件存储的Session类作者&#xff1a;heiyeluren博客&#xff1a;http://blog.csdn.net/heiyeshuwu 我没事的时候写的自主实现Session功能的类&#xff0c;基于文件方式存储Session数据&#xff0c;测试基本通过&#xff0c;还比较好玩&#xff0c;实际应用没有意义&am…

[转]PHP开发框架的现状和展望

PHP开发框架的现状和展望作者&#xff1a;廖宇雷来源&#xff1a;http://www.dualface.com/blog/?p361[原文发表于&#xff1a;赛迪媒体软件世界&#xff0c;此处为未经编辑修改版&#xff0c;FCS 框架部分内容由 FCS 框架作者流年撰写]引言&#xff1a;随着Ruby on Rails的火…