`
decentway
  • 浏览: 160324 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

YUI3:GET

阅读更多

Get 工具提供了一个,在页面加载完之后,附加脚本和css资源(包括跨域资源)到DOM上的机制。

Get工具两种常见的用例:

1.跨站数据检索:因为XMLHttplRequest(YUI IO Utility也是使用XMLHttpRequest)依靠一个严格的同源策略,所以,要通过XHR检索第三方数据需要一个服务器代理。(具体搜索一下XMLHttpRequest工作原理)。如果是能控制或者完全信任的跨域资源,可以不通过服务端代理而直接加载 script 数据从不同源的地方;而 script 文件,可能是典型 json 格式化的数据,在 load 的时候会立马执行。有一点至关重要,如果你加载的 script file 有恶毒的代码,没有安全的机制可以保证用户不受到恶毒代码的影响,因为浏览器会以完全的权限来执行这些代码。所以记住这一点:不要让用户接触到那些不能彻底信任的数据源

2.逐步加载方法:在富客户端应用中,基于用户动态加载需要的 js 文件和 css 文件变得非常有用, Get utility 提供了动态加载资源的功能。(注意:如果是加载 YUI 里面资源,可以使用 YUI loader 来加载, YUILoader 使用 Get Utility 来加载 YUI 组件,并且对解决 YUI 组件依赖问题)

 

 开始

配置一个Get Utility 事务(Configuring a Get Utility Transaction。请问如何翻译?)

使用提供给你的回调函数的参数.

Getting Started
Configuring a Get Utility Transaction
Making Use of Arguments Supplied to Your Callback
Using the Get Utility to Insert Script Nodes
Using the Get Utilty to Insert CSS Files
Using JSONP Web Services
How is the Get Utility Different From IO?
YUI on Mobile Devices

 

开始

<script src="http://yui.yahooapis.com/3.3.0/build/yui/yui-min.js"></script>;

 

 


 你可以取得一个脚本(Y.Get.script())and/or CSS(Y.Get.css())资源到页面。script和css方法都有一下参数:

1.URL(s):指定你需要加载到页面的URL(s), URL(s)可能是字符串或者字符串数组。

2.options:一个可选的配置对象,它包含了transaction(交互?)的信息;更多内容下面会讲到。

一个简单的文件请求可能如下:

YUI().YUI().use(function(Y) { var url = http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?" + "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" + "&results=20&output=json&omit_inlinks=domain" + "&callback=YAHOO.example.SiteExplorer.callback" + "&query=http://developer.yahoo.com/yui/", obj = Y.Get.script(url, { onSuccess: function() { alert("file loaded"); }; }); // 'obj'将是一个只有一个成员的对象,tID, //它是transaction中的唯一身份标识符, //它具有以下格式:"q0","q1","q2"..."qn" will be an object with a });

 

 


 

配置Get Utility Transaction

通过第二个参数配置script和css方法,这个可选的参数包含一个对象,这个对象包含以下字段:

 

配置选项 目的作用
onSuccess (function) Callback method invoked by Get Utility when the requested file(s) have loaded successfully.
onFailure (function) Callback method invoked by Get Utility when an error is detected or abort is called.
onProgress (function) Callback method invoked by Get Utility after each node is inserted.
onTimeout (function) Callback method invoked by Get Utility if a timeout is detected.
onEnd (function) Callback method invoked by Get Utility when a transaction completes no matter how the transaction ended.
attributes (object) A hash of attributes to apply to the dynamically created nodes. You might use this to add media="print" to a css file, for example.
win (window) The window into which the loaded resource(s) will be inserted. Default: Y.config.win.
context (object) The execution context in which all callbacks will run. Default: the current YUI instance.
data (any) Data to pass as an argument to onSuccess or onFailure callbacks. Default: null.
autopurge (boolean) If set to true, script nodes will automatically be removed every 20 transactions (this number is globally configurable via theY.Get.PURGE_THRESH property); script nodes can be safely removed in most cases, as their contents (having executed) remain available. CSS nodes should not have this set to true as it will remove the CSS rules. Default: true for script nodes, false for CSS nodes.
timeout (int) Number of milliseconds to wait for a script to finish loading before timing out

使用提供给回调函数的参数

正如上面部分,你的回调函数(无论是onSuccess还是onFailure),能够使用提供给配置对象的data 成员(将如你已经在configuration中提供了一个这样的data成员—如上表格)。当然,并不是只有data这一成员可以使用,下面的成员也可以使用:

(说简单点就是,在onSuccess或者onFailure函数中,允许使用下面的参数:)

 

 

FIELD CONTENTS
tId (string) The unique identifier for this transaction; this string is available as the tIdmember of the object returned to you upon calling the script or css method.
data (any) The data field you passed in your configuration object when the script or css method was called. Default: null.
nodes (array) An array containing references to node(s) created in processing the transaction. These will be script nodes for JavaScript and link nodes for CSS.
win (window) The window object in which the nodes were created.
purge() (function) Calling the returned purge() method will immediately remove the created nodes. This is safe and prudent for JavaScript nodes, which do not need to persist. If CSS nodes are purged, the rules they contain are no longer available and the page will repaint accordingly.

 使用Get Utility插入脚本节点 var successHandler = function(o) { //o,包含了上表中所有描述的域。 o.purge(); //在执行之后立即移除script脚本节点。 Y.log(o.data); //传递给配置对象的data成员 } var objTransaction = Y.Get.script("http://json.org/json.js", { onSuccess: successHandler, data: { field1: value1, field2: value2 } })

 


 

 

当使用Y.Get.script()方法增加一个或者多个脚本文件到页面上时,Get Utility 按照以下步骤执行:

1.将一个脚本节点加载到请求脚本文件的目标窗口

2.将新脚本的src属性设置为指定的URL

3.如果transaction成功,脚本被加载执行。

4.脚本节点的load时间被激发

5.Get Utility检查是否有更多的URL,如果有,将返回第一步。

6.如果这个最后一个,Get Utility将唤醒onSuccess回调函数(如果指定了一个回调函数)

如下:

var handlerData = { //传递给success or failure句柄的数据。 //就像上面的。 }; var successHandler = function(oData) { //code to execute when all requested scripts have been //loaded; this code can make use of the contents of those //scripts, whether it's functional code or JSON data. }; var aURLs = [ "/url1.js", "/url2.js", "/url3.js" //等等。。。 ]; Y.Get.script(aURLs, { onSuccess: successHandler, data: handlerData });

 


 

 使用Get Utility 来插入CSS文件

当你使用使用Y.Get.css()方法来增加一个或者多个CSS文件到页面上时,Get Utility 遵循以上脚本步骤。在Firefox和Safari上不兼容。

使用JSONP Web Services

Get Utility 和IO的区别

 

分享到:
评论

相关推荐

    yui3-master.zip

    《深入理解YUI3:基于yui3-master.zip的探讨》 YUI(Yahoo! User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为Web开发者提供了丰富的功能和工具,以创建交互性强、性能优秀的网页应用。YUI3是...

    YUI3.7.3 最新版本 带API

    5. **IO模块**:YUI3的IO模块支持Ajax请求,包括GET、POST等多种HTTP方法,以及异步请求和JSONP跨域数据获取。 6. **动画模块**:YUI3的动画模块可以轻松创建复杂的动画效果,支持CSS属性、颜色、尺寸等多方面的...

    yui 3.1.2 源码 6MB大小 0资源分

    而在3.1.2版本中,YUI的`xhr`模块也进行了优化,支持多种类型的HTTP请求,如GET、POST等,并提供了处理JSON、XML等多种数据格式的能力。 对于UI组件,YUI 3.1.2提供了诸如`button`、`checkbox`、`slider`等常见的UI...

    YUi文档(中文的哦)

    ### YUI3中文文档知识点详解 #### YUI3概述及YUIGlobal对象介绍 **YUI3** 是一个开源的JavaScript库,旨在提供一系列工具和API,帮助开发者构建高性能、高质量的Web应用。YUI3的核心优势在于其模块化的设计、强大...

    YAHOO YUI3简单入门

    YUI3的`IO`模块负责处理Ajax通信,可以进行GET和POST请求,支持异步传输和XMLHttpRequest2特性。同时,YUI3的`JSONP`模块则用于跨域数据获取,这对于获取服务器上的JSON数据非常有用。 **响应式设计** 虽然YUI3...

    yui_2.6.0r2

    3. Connection Manager:此组件用于处理Ajax请求,提供了异步与服务器通信的能力,支持GET、POST等多种HTTP方法,同时具有错误处理和状态监控功能。 4. Animation:动画模块是YUI的一大亮点,它允许开发者轻松创建...

    YUI 详细说明文档

    - `YAHOO.util.Dom.get(element)`:通过ID获取DOM元素。 - `YAHOO.util.Dom.getElementsBy(method, tagName, rootNode)`:在指定根节点下搜索满足条件的元素,支持传入自定义过滤函数。 **2.2 样式控制和访问** ...

    YUI-ajax框架开发文档

    `YAHOO.util.Connect`是YUI的基础Ajax功能,它提供了发起HTTP请求并处理响应的方法,支持GET、POST等多种HTTP方法,同时提供了异步请求的状态管理和回调机制。`YAHOO.widget.DataSource`则用于管理数据源,它可以与...

    YUI js方法使用列子

    3. **Event(事件)**:YUI的事件系统支持事件监听、事件代理和事件分发,使得事件处理更加高效和灵活。 4. **Animation(动画)**:提供了平滑的CSS和属性动画,可以创建各种复杂的过渡效果。 5. **DataSource...

    YUI 入门教程YUI 入门教程YUI 入门教程

    首先,YUI提供了一系列强大的DOM操作工具,例如`YAHOO.util.Dom.get`用于通过ID查找页面元素,类似于`document.getElementById`。`YAHOO.util.Dom.getElementsBy`则允许开发者基于特定的筛选条件和标签名在DOM树中...

    yui_2.5.2 类库

    3. **源码分析** YUI 2.5.2的源码可以深入了解其内部实现机制,对于学习JavaScript编程和优化性能非常有帮助。通过阅读源码,开发者可以学习到如何组织代码结构,以及如何设计高效的API接口。 4. **说明文档** ...

    《YUI使用文档》汉语版的yui学习材料

    例如,`Dom.get`能根据ID获取元素,`Dom.getElementsBy`则通过用户定义的过滤函数查找符合特定条件的元素,而`Dom.getElementsByClassName`则按标签名和类名组合来查找元素。`Dom.inDocument`用于判断元素是否存在于...

    雅虎YUI组建

    **3. JavaScript组件** - **Event**: 事件处理模块,支持DOM事件的监听、处理和移除,提供了一套跨浏览器的事件系统。 - **Node**: Node模块提供了对DOM节点的操作,如选择、创建、修改和删除等,简化了DOM操作。 - ...

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

    3. **事件处理**:YUI的事件系统允许开发者方便地绑定和解绑事件,处理用户交互。YUI事件模型兼容了多种浏览器,解决了跨浏览器的事件处理问题。 4. **动画效果**:YUI的Animation模块提供了创建复杂动画效果的能力...

    经典的YUI 示例中文文档

    - **`YAHOO.util.Dom.get(element)`**:等同于`document.getElementById(element)`,用于获取指定的DOM元素。 - **`YAHOO.util.Dom.getElementsBy(method, tagName, rootNode)`**:根据用户提供的筛选方法`method`在...

    yui详细教程,适合新人

    YUI的IO组件提供了与服务器异步通信的能力,支持GET、POST等多种HTTP请求方式,以及JSONP、XMLHttpRequest等传输协议。 ### 3. YUI的使用方法 使用YUI时,首先要通过`&lt;script&gt;`标签引入YUI库,然后根据需求加载所...

    关于yui的学习

    4. **Ajax交互**:YUI的IO模块提供了异步数据请求的能力,支持GET、POST等多种HTTP方法,方便与服务器进行数据交换。 5. **CSS样式管理**:YUI的CSS工具可以帮助开发者更方便地管理和应用样式,如CSS Reset、CSS ...

    YUI英文API文档

    7. **AJAX和IO**:`Y.io`接口用于处理异步请求,如GET和POST,与服务器进行数据交互。理解回调函数、参数设置以及错误处理对于实现前后端通信至关重要。 8. **布局和组件**:YUI包含多种UI组件,如Panel、...

    Yahoo YUI 资料

    YUI支持国际化的`Lang`模块,可以处理多语言环境,通过`Y.Intl.get()`获取本地化字符串。 10. **可访问性** YUI关注网页的可访问性,其组件设计遵循WCAG 2.0标准,确保残障人士也能顺畅使用。 在3.14.1版本中,...

Global site tag (gtag.js) - Google Analytics