mootools1.1正式发布了,新特性一览

今天上了下mootools的主站,发现1.1 released。

看了一下,主要的新特性如下:

一.更快的速度,兼容性和全方位优化

mootools在速度上面进行了很大的优化,比较突出的是在CSS选择器方面(不仅仅在实现逻辑方面进行优化,XPATH被在所有支持的浏览器中启用 )

二.更加新颖的事件系统

1.自定义事件:提供了一套api来提供定义自定义事件。比如mootools自带的mouseenter,mouseleave,domready就是这类自定义事件。

2.Element::cloneEvents提供了事件的复制

如:note.clone().cloneEvents(note); //复制note对象并且把原来note对象上的事件监听也复制过去

三.提供更多的Element的方法及新的Element构造方式。

例如新的构造Elment如下:

js 代码
 
  1. var note = new Element('div', ...{  
  2.         'id': 'note',  
  3.         'class': 'note',  
  4.         'styles': ...{  
  5.                 'left': 15,  
  6.                 'top': 15  
  7.         },  
  8.         'events': ...{  
  9.                 'click': noteConfirm,  
  10.                 'mouseover': noteShowMore  
  11.         }  
  12. });  

对比原先的功能对等的构造方式:

js 代码
 
  1. var note = new Element('div').addClass('note').setProperty('id', 'note').setStyles(...{  
  2.         'left': 15,  
  3.         'top': 15  
  4. }).addEvents(...{  
  5.         'click': noteConfirm,  
  6.         'mouseover': noteShowMore  
  7. });  

*新方法:

Element::set - 功能如同新的构造方法的第二个参数一样,可以给Element添加各种属性

Element::hasChild  - 判断是否内部含有所给出的子元素

*改进的方法:

Element::setStyle - 对于没有明确给出单位的数值型值,将默认为单位是'px'

Element::adopt - 新版本支持多个元素(这个非常不错,很方便)

 

四.元素过滤器

利用新的元素过滤器,可以对使用$$得到的元素进行进一步的归纳。这些将不需要Element.Selectors,而只使用原生的tag名选择过滤方法(应该速度上快一点吧)

一下例子中将不会用到Element.Selectors:

$('div').filterByClass('myClass');

而这个会用到:

$('div.myClass');

更真实的例子:

 $('myElement').getChildren().filterByClass('myClass');

 五.更加完善的Ajax功能

基本的Ajax实现逻辑从Ajax类中转入到了XHR类中了。

其他提供的一些更加强大的方法:

Ajax::cancel - 可中断正在执行的请求。如果启用了‘autoCancel’选项,则当发出新的请求的时候自动中断当前请求

Ajax::evalScripts - 加强了全局的eval及自动执行Content-Type为javascript的返回内容

postBody选项更名为data,因为现在XHR可以分别接受get和post方法提交的数据

六.Hash.Cookie和Group

Hash.Cookie是一个扩展的Hash类,它可以自动或手工的保存或加载在Cookie中以JSON格式存储的数据

Group - 可以对元素和事件进行分组处理的类(用法可以参见我前面的文章)

七.工具集

1)新或增强的工具方法:

$defined , $time , $type

2)新的Array方法:

Array::getLast , Array::getRandom , Array::merge ,Array::include

3)新的String方法:

String::contains , String::escapeRegExp

4)新的Number方法:

Number::times(好Ruby啊!) , Number::limit , Number::round

5)浏览器检测

加入了window.webkit419 , window.webkit420,而window.khtml已经被作为过期api

八.增强的垃圾收集机制

九.其他的增强

1)Accordion::addSection可以用来在向一个已经创建的Accordion中添加更多的元素

2)Sortables变得更加稳定,以及不依赖于Drag.Move

3)新的Fx.Transtions,它已经变得更加的可配置

4)Fx.Slide允许border和margin

5)Element::getStyle现在已经全面支持padding/margin/border(包括针对IE的width/height的修正)

十.变更的API

 一些过期的api在v1.1中还是能用,但是,在v1.2中将作删除。

1.Ajax的postBody变更为data

2.Array::test被Array::contains替代

3.Object.extend,Object.merge和Object.Native现在已经推荐使用$extend, $merge,$native

4.Window.onDomReady被作为过期API,取代它的是'domready'这个自定义事件,如:

window.addEvent('domready', fn).

5.Hash::each的功能行为已经变更成和$each所提供的功能等价的行为。

6.Hash::empty的功能变为清空所有hash键值(原来的功能是判断hash是否为空,现在等价的功能由Hash::length提供)。

 7.window.khtml由window.webkit取代

 

 

 

 

你可能感兴趣的:(Ajax,IE,Ruby,webkit,mootools)