2008-02-28

prototype 摘要 (1.5)

关键字: ajax
官网:prototypejs.org/api


个人小结:

prototype - scriptaculous和ror合作得很好,
而dojo - dwr和java框架是一伙的。


概览:prototype包括

[1] 一些简写的语言工具,缩短你的代码。包括惊艳的$()函数(下面有详述)。

[2] 强化对象: Class.create(), 给Object增加了extend()和inspect()等方法

[3] 数组和迭代: Array, Hash, 这两个都扩展了Enumerable,可以方便的执行一些迭代算法

[4] 跨浏览器事件处理: Event.observe(), Event.stopObserve(), Event.stop(e);
给Function添加了bind()函数:此绑定使得函数内使用this总是指向它的parent(相当于dojo.io.bind);
Form.Obersver()和Form.Element.Observer()系列可以以interval的方式监视事件

[5] 增强的html元素dom操作(既可以传入id,也可以传入对象): Element, Insertion, Position, Form

[6] Ajax支持(以线程池的方式管理xhr): Ajax.Request, Ajax.Updater, Ajax.PeriodicalUpdater

[7] 其它: Date, Number, ObjectRange, PeriodicalExecuter, String, Template, TimedObserver [/list]


简写:改善javascript代码

$('someId') 返回id=='someId'的node,同时扩展这个node,增加hide(),show()等函数

$('id1','id2','id3') 返回node数组,并对这个数组增加invoke()函数。如
$('id1','id2','id3').invoke('hide') $('id1','id2','id3').each(Element.hide)


$$('css rule') 以css选择器的方式选择元素node,相当强大!不知道是否支持伪类。总是返回一个node数组。如
$$('li.faux') //返回所有class=faux的li元素 
$$('link[rel]') //返回所有含rel属性的link元素 
$$('a[href="#"]') //返回所有href=#的超链元素


$A(iterable) 相当于Array.from(iterable),产生一个数组

$H(iterable) 相当于Hash.from(iterable) ,产生一个散列

$F(formElem) 返回field的值


不足之处

[1] 没有xmldom和xlst的支持

[2] 随着prototype的不断成长, 从1.4的1000行膨胀到了1.6的4000行……虽然相比其他库还算很小……
评论
发表评论

您还没有登录,请登录后发表评论

night stalker
搜索本博客
最近加入圈子
最新评论