因为我是YUI的新手并且仅仅使用它几天.
因此,YUI实例包括特定模块,如"io-base","node"或任何其他模块.
那么我可以使用像io(),Node(),on()等方法.
问题1:有谁可以告诉我它是如何工作的?并且在包含像jQuery这样的种子文件后,yui是否可以脱机工作?
问题2:这个yui对小项目有帮助吗?
fox*_*rot 10
YUI的核心是装载机.基本上,Loader下载或附带描述YUI中每个模块的JSON结构.当您请求"node"或"io-base"之类的东西时,Loader会查找您命名的模块的元数据,收集当前未在模块注册表中注册的依赖项(稍后会详细介绍),并以递归的方式工作需要加载的完整模块集的依赖关系链.然后,它会为这些模块发出HTTP请求.如果您没有'组合处理程序'(基本上是服务器上的文件串联服务),Loader将单独请求每个文件,但Combo Handler允许批量请求这些文件.
每个YUI模块都包含在YUI.add()语句中.此方法采用设置模块的设置函数,并公开您希望在传递给函数的"实例对象"上公开的任何代码,按照惯例,此实例对象称为"Y".YUI.add实际上做的是将模块放在上面提到的模块注册表中,所以在Loader调用提供给YUI.use()的回调之前,它可以执行每个必需的模块设置功能,以确保您的环境根据什么正确配置你已经要求了.
这个沙箱模型,每个模块都在一个函数内部设置,使用一个实例变量,从每个模块公开所需的功能,最终传递给你提供给'use'的回调,允许多个YUI实例在同一个页面上运行,与页面上的其他实例完全隔离.(警告:这通常不是一个好主意,因为每个沙箱都有自己的一组模块,你最终会有大量的冗余内存使用,它仍然有用,它通常不被建议或必要).
如果仅包含种子文件,则YUI将无法在没有Internet连接的情况下工作,因为种子文件不包含任何模块.在这种环境中有一些使用YUI的替代方案.
YUI可用于任何项目,无论大小.它当然具有在大型项目中最突出的代码组织和模式优势,但是该库能够通过Loader相当简单的界面"扩展"项目复杂性.
如果你想深入了解如何配置装载机,以及一些正在发生的事情,我在YUIConf 2011就这个主题发表了演讲,虽然我警告说,它针对已经熟悉YUI的人正在寻找配置自己的模块进行加载.