原型(Prototype):减少AJAX的开发痛苦

来源:互联网 发布:python nmap 编辑:程序博客网 时间:2024/05/16 04:23
                                            原型(Prototype):减少AJAX的开发痛苦
                                                                                      作者:Bruce Perry
                                                                                          April 05, 2006
 
本文所描述的原型(Prototype),是一个开源的JavaScript库,用来为AJAX应用创建一个对象。我通过描述一个面向Web应用的环境系统来解释如何使用原型(Prototype),这个系统用来显示年度的二氧化碳浓度水平。首先,我将讨论原型(Prototype)的好处,并且描述怎么在你的应用里安装原型(Prototype);其次,我还将深入地探讨这个系统怎么使得原型(Prototype)库有着很好的应用实践。
 
什么是原型(Prototype
为什么我不为我的应用直接创建一个简单的、成熟的JavaScript对象(POJO),而是引进一个开源库?第一,原型(Prototype)收集了很多漂亮的有关于JavaScript的捷径用法,它减少输入,并且避免重复发明轮子。最常用的、值得夸奖的捷径方法是$("mydiv"),这是一个原型(Prototype)函数,返回一个与id为“mydiv”的HTML标签相关的文档对象模型(DOM)元素。这种类型的简化完全值得我们在安装原型(Prototype)上的花销。而不安装它、与$("mydiv")相等的表达式为:
document.getElementById("mydiv");
另外一个有用的原型(Prototype)的捷径方法是$F("mySelect"),用来返回一个Web页面上的HTML表单的元素的值,例如一个选择列表。一旦你习惯了原型(Prototype)的严谨的、透明的语法,你就会随时使用这些捷径方法。原型(Prototype)也包含了很多的定制对象、方法和很多用来编译JavaScript对象的扩展。例如EnumerationHash对象(我在下面将要讨论到)
最后,原型(Prototype)也通过它自己的Ajax.Request和相关的对象包装了XMLHttpRequest的功能。所以你不用费心去编写代码为各种各样的浏览器去启动对象。
 
安装
怎样安装原型(Prototype)呢?首先,在prototype.conio.net网站上下载它,原型(Prototype)是一个开源的项目,能够在an MIT-style license授权下使用。下载的文件包括prototype.js文件,这是一个JavaScript文件,它定义了各样各样的在你的应用中要使用到的方法、对象。在你的应用中添加prototype.js文件的方法是在HTML文件中使用一个script标签。
...
...
 
在你的应用程序中的包含HTML文件的同一极目录里,也包含了一个叫js的目录。这个js目录包含了prototype.js,在co2.js文件中定义了一个对象,这将在本文中加以描述,就跟客户端的其他代码在另外一个文件:eevapp.js中一样。
既然应用已经引入了原型(Prototype)文件,那么其他的引入了.js文件的JavaScript代码就能够使用原型对象及其扩展,如果它们在本地被声明和定义了的话。JavaScript不需要像例如importrequire这样的语句来使用其他JavaScript文件的对象,这些JavaScript文件只需要浏览器一般引入就行了。
 
气候变化
原型(Prototype)是怎么来帮助我们实现应用的需求的呢?需求又是什么呢?
用户接口是一个Web浏览器,例如Safari 1.3、Firefox 1.5、Opera 8.5或者 Internet Explorer 6。应用被设计来显示小数据量的年度的大气层二氧化碳水平。这是数值性的数据,像377,代表的是某一个年度在大气中的百万分之几的二氧化碳的水平。我决定在一个JavaScript对象中存储这些年份和数值,这些对象能够从应用中下载到浏览器上。没有必要使用数据库来存储这些数据,因为它们规模太小,不需要安全或者认证。这些数据被设计来供感兴趣的公众使用。然而,应用的确有了如果必要的话,在飞行中对JavaScript对象添加新的数据的能力。
 
CO2:Applet
图1-1显示了应用的浏览器界面。左上角是一个Applet,用来显示大气中二氧化碳的水平,当用户选择一个年份的时候。
数据是从运行在Hawaii的政府网站Mauna Loa Observatory上获得。它的测量是在高海拔上的一般测量。全世界的科学家都在它们的气候变迁研究中使用这些数据。
有46个年度等级,从1959-2004(2005年的数据现在还没有获得)。因而,这使得我们使用JavaScript对象来保存信息。甚至当我们需要使用这个工具选择显示这些年的月度水平(有超过500的分离数据),我们也是在客户端保存数据,没有数据库或额外的服务器。
 
原型(Prototype)在哪里被使用
eevapp.js文件包含了当用户在选择框选择一个年度的时候需要执行的代码:
//instantiate an object 
//defined in the co2.js file 
var co2lev = new CO2Levels();
//the onload event handler executes
//when the browser is finished loading the page.
window.onload=function(){
$("co2_select").onchange=function(){
    $("co2ppm").innerHTML= 
    co2lev.getYear($F("co2_select")); 
    }
 
};
 
"co2_select"是用户选择一个年份时选择框的id值。