`
love19820823
  • 浏览: 973922 次
文章分类
社区版块
存档分类
最新评论

Yahoo YUI的Ajax工具包

 
阅读更多
Yahoo发表了一系列的Ajax设计模式. Yahoo的这些工具包是Yahoo在收购了多个Web2.0网站后推出的Ajax工具包,代码的注释也写的很好,文档也很丰富和详尽。

YUI的组件也在不断的增加中,yahoo为YUI设了一个Yahoo用户组,里面的邮件很活跃,问的问题基本都有人回答,而且比较细致和具体。

YUI分为两个大类,一个是Ajax组件,里面包括对底层javascript包装后的几个工具包,分别是connection,event, dom,animation,dnd.还包括一组高级的javascript控件,目前包括AutoComplete,Calendar, Container,Menu,Slider,TreeView.

另一类是几个很有用的几个CSS文件,一个是CSS Page Grids,用它可以很方便的布局你的网页。另外两个是Standard CSS Fonts和Standard CSS Reset,利用这两个CSS可以对字体等在不同浏览器中获得一致的效果.

Yahoo的Ajax设计模式是在目前的WEB2.0网站中常用的一些改善用户体验,增强交互效果的文章,格式和Design Pattern类似.有时会提供一些例子网站或网页,当然都是yahoo自己的几个网站,上面的javascript可能还没有整理到YUI里面去,但是 也都是格式化很好的javascript,也没有混淆.

YUI Utilities(Connection Manager)

Yahoo的javascript文件都有一个注释的很好的,格式化很好的版本和一个去掉注释和空格的版本,学习看源代码当然用前者,而最后在网页上使用的时候就可以选用后者。

1. Connection Manager
这个工具包用来管理XMLHttpRequest,通过这个工具包可以查询正在执行的请求的状态,可以注册正确返回的回调函数,错误处理的回调函数,还可以根据提供的表单Id方便的收集和发送表单字段。下面给出的代码是基本调用形式

var callback =
{
success: function(res) {/*success handler code*/}, //正常返回处理函数
failure: function(res) {/*failure handler code*/}, //出错返回处理函数
argument: [argument1, argument2, argument3] //可以在success函数和failure函数中访问的变量
}
var transaction = YAHOO.util.Connect.asyncRequest(’GET’, sUrl, callback, null);

下面的表给出的是通过正确返回时res参数可以获得的属性值。

属性明 描述
tId 该Http请求的事务表示
status 返回的Http状态码
statusText 对应状态码的字符串表示
getResponseHeader[label] 返回label名称标识的Http头的值
getAllResponseHeader 所有的Http头的字符串表示,用”/n”分隔
responseText 返回内容的字符串表示
responseXML 返回内容的XML表示
argument 回调函数中传入的变量

错误返回时可以通过res返回的属性

属性明 描述
tId 该Http请求的事务表示
status 0
statusText “communication failure”
argument 回调函数中传入的变量

如果想发送的是表单数据,那么使用下面的代码就可以了:

YAHOO.util.Connect.setForm(formId);
var cObj = YAHOO.util.Connect.asyncRequest(’POST’, ‘http://www.yahoo.com’, callback);

查看请求是否已经处理完

var cObj = YAHOO.util.Connect.asyncRequest(’GET’,'http://www.yahoo.com’,callback);
var callStatus = YAHOO.util.Connect.isCallInProgress(cObj);

超时取消请求

var cObj = YAHOO.util.Connect.asyncRequest(’GET’, sUrl, callback);
setTimeout(”YAHOO.util.Connect.abort(cObj)”,10000);

YUI Utilities(Event)

使用Event工具包可以简化浏览器端的事件驱动程序的开发,通过使用简单的接口就可以订制响应DOM事件的代码,同时获得浏览器Event对象的各种属性也很方便。通过Event工具包我们还可以订制自己的事件,这样页面组件可以接收这些事件并做出响应。

基本的事件代码

var oElement = document.getElementById(”elementid”);//获得事件源
function fnCallback(e) { alert(”click”); }//定义回调函数

YAHOO.util.Event.addListener(oElement, “click”, fnCallback);//注册回调函数,当oElement的click事件发生的时候,fnCallback函数将被调用。
//或者更简单的直接传递Id YAHOO.util.Event.addListener(”elementid”, “click”, fnCallback);

注册响应多个页面元素的事件

var ids = [”el1〃, “el2〃, “el3〃];//该数组中可以包括元素ID,元素的引用,或者两者混合的情况。
function fnCallback(e) { alert(this.id); }
YAHOO.util.Event.addListener(ids, “click”, fnCallback);

Yui的Event包解决了一些比较实际的问题,第一页面元素通常在Javacript注册事件代码后载入,这个时候Yui会正确延迟注册,直到指 定Id的元素可以访问。第二微软的IE浏览器在事件处理函数中的this指向的是Window对象,而不是发生事件的那个元素,YUI也会正确的传递事件 发生的源元素。第三可以把任意的对象传递给事件处理函数。

创建和使用自定义的事件

1.使用CustomerEvent对象创建自己的事件

function TestObj(name) {
this.name = name;
this.event1 = new YAHOO.util.CustomEvent(”event1〃, this);
}

YAHOO.util.CustomEvent = function(type, oScope);
type表示事件类型的字符串

2。注册对自定义事件的响应函数

function Consumer(name, testObj) {
this.name = name;
this.testObj = testObj;
this.testObj.event1.subscribe(this.onEvent1, this);
}

3。响应函数

Consumer.prototype.onEvent1 = function(type, args, me) {
alert(” this: ” + this +
“/n this.name: ” + this.name +
“/n type: ” + type +
“/n args[0].data: ” + args[0].data +
“/n me.name: ” + me.name);
}

4。触发自定义事件

function TestData(data) {
this.data = data;
}
var t1 = new TestObj(”mytestobj1〃);
var c1 = new Consumer(”mytestconsumer1〃, t1);
var d1 = new TestData(”mydata1〃);
t1.event1.fire(d1);

YUI(Dom Collection)

YUI的dom工具包屏蔽了各种浏览器的差别,使用dom工具包可以方便的的操作页面元素,包括控制元素的坐标,以及改变元素的CSS风格。

获得和设置元素坐标
var pos = YAHOO.util.Dom.getXY(’test’);
YAHOO.util.Dom.setXY(’target’, pos);

设置元素的CSS属性
YAHOO.util.Dom.setStyle([’test’, ‘test2′], ‘opacity’, 0.5);
var opacity = YAHOO.util.Dom.getStyle(’test2′, ‘opacity’);

获得显示当前文档的窗口的大小。
var viewport = [
YAHOO.util.Dom.getViewportWidth(),
YAHOO.util.Dom.getViewportHeight()
];

获取和设置与CSS相关的属性
getElementByClassName(className,tagName,rootNode)
hasClass(element,className)
addClass(element,className)
removeClass(element,className)
replaceClass(element,oldClassName,newClassName)

分享到:
评论

相关推荐

    struts2 yahoo yui ajax plugin

    描述中的"struts2 的 yahoo yui ajax 插件jar包及配置说明"暗示了这个压缩包可能包含了以下内容: 1. **Jar包**:这通常是一个或多个.jar文件,其中包含了实现Struts2与Yahoo YUI集成的类和资源。开发者需要将这些...

    YUI-ajax框架开发文档

    YUI(Yahoo!...总之,YUI的Ajax框架为开发者提供了强大的工具,使他们能够轻松地构建动态、交互性强的Web应用。通过深入学习和理解YUI的Ajax组件,开发者可以大大提高开发效率,减少代码量,并提升用户体验。

    雅虎 用户接口库YUI

    Yui 工具包利用DOM脚本来简化浏览器内的开发(in-browser devolvement),使用DHTML和AJAX的特性开发所有的Web程序。 动画(Animation):在你的页面中通过指定位置,大小,透明度或者页面元素的其他特性来创建一个...

    雅虎YUI组建

    **雅虎YUI组件详解** 雅虎用户界面库(Yahoo! User Interface Library,简称YUI)是雅虎公司推出的一款开源JavaScript和CSS框架,旨在帮助开发者构建高性能、可扩展的前端应用。YUI包含了丰富的组件,包括布局管理...

    Yahoo YUI 插件库

    **Yahoo YUI 插件库** ...总之,Yahoo YUI插件库是Web开发者的强大工具箱,提供了丰富的功能来提升Web应用的质量和用户体验。通过结合YUI核心组件和各种插件,开发者可以构建出高度定制、功能全面的现代Web应用程序。

    Yahoo YUI2.7中文API 完整版

    YUI 2.7 版本是这个库的一个重要里程碑,它提供了丰富的组件和工具,以便于前端开发人员更好地处理页面布局、事件处理、AJAX 交互、动画效果以及数据管理等任务。 **一、YUI 的核心特性** 1. **模块化设计**:YUI ...

    YAHOO yui2.7 文档+ 代码+例子

    YUI(Yahoo! User Interface Library)是雅虎公司开发的一个开源的JavaScript和CSS库,它为构建高性能、跨平台的Web应用程序提供了丰富的工具和资源。YUI 2.7是这个库的一个版本,包含了文档、源代码以及实例,使得...

    yui 资源包

    YUI,全称为Yahoo! User Interface Library,是由雅虎公司开发的一个开源JavaScript库,它旨在简化Web应用程序的构建,特别是对于界面设计和交互效果的实现。在3.9.0 r2这个版本中,YUI提供了丰富的组件和工具,帮助...

    yahoo yui控件

    Yahoo YUI是一款强大的开源JavaScript库,由雅虎公司开发,主要用于构建高性能的Web应用程序。它包含了丰富的UI组件、工具集和资源,帮助开发者实现复杂的交互效果和布局管理。YUI的核心设计理念是模块化,允许...

    YUI2.8.1包括demo api是学习的好东西

    YUI 2.8.1是该库的一个特定版本,包含了丰富的功能和工具,对于想要深入学习前端开发,尤其是使用Yahoo框架的人来说,是一个非常宝贵的学习资源。 在YUI 2.8.1中,我们主要可以关注以下几个关键知识点: 1. **模块...

    YAHOO YUI3简单入门

    YUI3是YUI的第三个主要版本,它在设计时注重模块化、可扩展性和性能优化,提供了一系列用于处理DOM操作、事件处理、动画效果、Ajax通信、数据存储等任务的工具。本教程将带你入门YUI3的基础知识。 **模块化设计** ...

    yui3-master.zip

    YUI(Yahoo! User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为Web开发者提供了丰富的功能和工具,以创建交互性强、性能优秀的网页应用。YUI3是YUI库的第三个主要版本,着重于模块化、轻量化...

    YUI-EXT使用详解

    YUI本身是一个开源的JavaScript库,由Yahoo开发,旨在简化前端开发,提供包括DOM操作、事件处理、动画效果、Ajax交互等功能。而YUI-EXT则是对YUI功能的补充,它主要专注于用户界面组件的实现,提供了丰富的UI元素和...

    YUI3.6文档及示例

    YUI(Yahoo! User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的Web应用程序。YUI3.6版本是该库的一个重要里程碑,提供了丰富的组件和工具,以支持现代Web开发的...

    yahoo yui 3.3.0

    User Interface Library(简称yui) 是一个使用Javascrīpt编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序。yui也包含几个核心的CSS文件。yui中的所有组件已经以开源的形式发布,...

    YUI.rar_html_javascript YUI_yui_yui javascript

    YUI是雅虎公司开发的一个开源JavaScript库,它为Web开发者提供了丰富的工具和组件,以构建高效、可扩展的网页应用。这个压缩包"YUI.rar"包含了YUI的源代码以及相关的HTML和JavaScript示例,展示了如何利用YUI库创建...

    YUI3.7.3 最新版本 带API

    YUI(Yahoo! User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的网络应用程序。YUI3.7.3是YUI的一个特定版本,它在发布时被视为最新的版本,提供了许多改进和新...

    一些关于YUI的资源

    YUI,全称为Yahoo! User Interface Library,是由雅虎公司开发并开源的一套JavaScript库,专门用于构建富互联网应用程序(RIA)和增强网页交互性。在本压缩包中,包含的是YUI的2.x稳定版本,这表明它是经过广泛测试...

    Yahoo JavaScript库 YUI源码

    **Yahoo JavaScript库 YUI源码详解** Yahoo User Interface (YUI) 是Yahoo公司推出的一款强大的JavaScript库,旨在帮助开发者构建高性能、可维护的Web应用程序。作为一款免费且开源的工具,YUI为开发者提供了丰富的...

    Struts2中使用JSON+YUI之一[包含功能代码段]

    而YUI则是一个开源的JavaScript库,提供了丰富的UI组件和工具,如表格、树形结构、按钮等,以及对AJAX(Asynchronous JavaScript and XML)的良好支持。 **一、Struts2与JSON** 1. **配置JSON插件**:在Struts2中...

Global site tag (gtag.js) - Google Analytics