YUI的剧院-杰夫·克雷格:“解密装载机:先进的模块配置”(31分钟)
2011年12月16日,上午10:10由Ryan树丛, YUI剧院 | 开发 | 没有评论在Meebo的工程师和YUI贡献者杰夫·克雷格( @ foxxtrot )这从YUIConf 2011的谈话,表明你一直想了解YUI加载,但不敢问的一切。 这是一个必须看到的任何人使用YUI 3性能的关键工作。
链接
共享和扩展: 书签del.icio.us Digg它! | reddit!
锐:营业时间周四12月15日
12月13日,2011 11:59由埃里克Ferraiuolo上午|在发展 , 营业时间 | 评论锐3.5.0 PR1的
锐3.5.0 PR1的是现在! 这是三个预览版本为3.5.0。
营业时间为这个我们将突出什么在PR1和讨论如何可以涉足确保3.5.0是坚如磐石。 我们也将寻求从真棒开发商已经开始使用3.5.0 PR1的(这是展示手中的CDN )。 来到星期四,不要让她陷入你的手下来:)
此外, YUI库分期网站已经更新了最新的用户指南和API文档,并在最后的营业时间从反馈的回应,我们现在正在使用我们的GitHub的维基跟踪持续发展问题的讨论 。
录音
共享和扩展: 书签del.icio.us Digg它! | reddit!
锐3.5.0应用框架的变化
12月12日,在下午3:40 2011年由Ryan树丛| 开发 | 1评论YUI的应用程序框架 3.4.0初始发行以来,我们一直在惊讶的速度有多快,它被采纳。 在大型和小型项目,长时间YUI的用户和那些完全新的图书馆一直积极使用应用程序框架的MVC组件,并提供了很好的意见和错误报告。 谢谢!
3.5.0在锐,应用程序框架将收到大量的bug修复和一些重大的增强。 埃里克Ferraiuolo涵盖许多梦幻般的YUIConf谈话在他即将到来的变化,但我们想在这里强调他们以及让你知道什么是未来,你应该准备什么,如果你打算从3.4.x升级应用程序框架的代码3.5.0。 这些变化已经锐3.5.0 PR1 ,这是今天发布的,所以现在是一个伟大的时间,开始测试。
Y.Controller是现在Y.Router
“控制器”是一个真正关注的是,基于URL的路由组件,尤其是考虑到更传统控制器的作用,Y.View次,愚蠢和混乱的名称。 我们已经决定硬着头皮和重命名3.5.0 Y.Controller类Y.Router。 Y.Controller将成为一个别名,以保持向后兼容性,但最终将被删除此别名,所以你应该更新你的代码,是指以新的名称。
新航线的处理程序签名
有轻微的改变,使其更类似表达 ,用于在服务器上(我们目前工作的3.5.0的功能)时,使路由器的API更自然为在Y.Router路由处理功能的方法签名。
此前,路由处理功能,接收两个参数: req (请求对象)和next ()的函数。 3.5.0,路由处理程序会接收三个参数: req , res (响应对象),然后next 。
为了向后兼容性,新的res参数也是完全一样的功能,表现next ,所以旧式的路线,预计next作为第二个参数将继续努力,在3.5.0罚款的处理程序。 然而,这种兼容性垫片将最终被取消,所以不等待时间过长,更新你的代码。
现在有些属性是属性
我们尝试用一个不完全的锐像使用应用程序框架组件的配置选项的属性3.4.0,但原来这是有点混乱,多一点点限制,风格自属性不受益从变化的事件,二传手,像属性做验证。 因此,在3.5.0中,我们正在转换这些属性许多属性。
不幸的是,这种变化是不向后兼容,所以现有的代码,使用Y.Controller(现在Y.Router)或Y.View可能需要更新。 具体来说, html5 , Y.Router的root , routes属性现在属性和Y.View的container , model ,和modelList属性现在属性以及。
除了 这个,现在Y.View的container属性将字符串值,CSS选择器用来在页面上找到的节点。 在3.4.x中,它承担了代表原始的HTML,应转换成一个节点的字符串值。 为了得到旧的行为,只是改变现有的HTML字符串值'<div>foo</div>' Y.Node.create('<div>foo</div>')
3.5.0 PR1的文档
我们的临时网站上可以找到工作的进展,这些变化和其他变化在3.5.0 PR1的锐文档。 下面是一些有关分期文档3.5.0应用的框架deprecations和有关如何升级你的代码的详细信息,包括信息的链接:
请注意,在stage.yuilibrary.com内容反映正在进行的工作进展情况,可能是不完整的,甚至偶尔作为我们测试新的东西打破。 在我们的生产现场,你总能找到最新的稳定版本文档yuilibrary.com 。
什么是新的?
在这个博客后,我总结了未来在3.5.0应用程序框架的重要deprecations,但也有很多增强功能和下盖,bug修复。 有关完整列表的应用程序框架3.5.0 PR1的变化, 咨询的历史文件 。
另外,寻找从埃里克的博客文章很快Y.App,真棒新的高层次的应用程序框架的组成部分,它包装成一个单一的,易于使用的API,你会得到基于URL的路由和视图管理从零到在任何时间运行的应用程序。
我们希望你爱的预览版,我们很乐意听到你的! 您可以给我们的反馈论坛 ,在一个错误报告 , 在Twitter上#YUI Freenode上的IRC频道,或者只是在这里磬评论。
共享和扩展: 书签del.icio.us Digg它! | reddit!
锐3.5.0 PR1的是现在可用
艾伦拉比诺维奇,2011年12月12日下午03:36 | 开发 | 评论
YUI的3.5.0预览版1已部署用于测试和开发者社区的反馈。 你可以找到雅虎的CDN在yui.yahooapis.com/3.5.0pr1/build/yui/yui-min.js ,或下载一个zip文件,如果你打算自己去承载它。
汇总在PR1中引入的变化是我们的GitHub上的Wiki上。 此外,您可以查看在此版本中解决的门票清单 。
工作正在进行中的用户指南和API文档 3.5.0我们的临时网站上可以找到,但要注意,这些文件可能不完整甚至断裂,因为这是我们测试新的东西。 官方的最新的稳定版本的文档,总是可以找到我们的生产现场, yuilibrary.com 。
将引入更多的变化,在即将到来的3.5.0 YUI的预览版本,其中一些目前正在开发自己的分支机构和初步审查通过以下拉请求:
提交对本新闻稿中的错误,请访问我们的bug跟踪系统 。 如果您想对这些问题和未来的模块提供输入,3.5.0发布有关的各种主题正在进行的讨论正在发生的事情对我们的GitHub的维基。
如果一切按计划进行,我们希望释放在2012年1月30日,锐3.5.0 PR2的。 节日快乐!
共享和扩展: 书签del.icio.us Digg它! | reddit!
锐剧院-阿伦拉比诺维奇:“YUI的日历-建筑与风格模块为例”(47分钟。)
由Ryan树丛在发展 ,2011年12月8日下午1:02 , YUI剧院 | 评论YUI的工程师艾伦拉比诺维奇( @ allenr )在这从YUIConf 2011的谈话,分享的过程中,他用建筑师和建立新的日历部件锐3,并解释如何,你可以使用一个类似的过程,以建立自己的部件。 他还展示了新的组件,并揭示了一个聪明的表现技巧,用于加快渲染多个日历。
链接
共享和扩展: 书签del.icio.us Digg它! | reddit!
锐剧院帕特-贾维特:“自动化网站优化”(32分钟)
由Ryan树丛在发展 ,2011年12月6日下午02:58 , YUI剧院 | 2评论八贾维特( @ tivac ),在前端工程师国安局和YUI的一个活跃的贡献者和社区成员,加入我们YUIConf 2011上使用自动生成时间网站优化,如文件串联,微小的,重命名,更给这个谈话Ant构建工具。
链接
共享和扩展: 书签del.icio.us Digg它! | reddit!
在锐3画廊:批量编辑器部件
2011年12月5日,1:01 PM由约翰·Lindal在发展 , YUI 3画廊 | 没有评论锐3 DataTable的 快速编辑插件,可以很容易地编辑整个页面作为一个原子操作的记录。 然而,有时你需要做的,甚至更多。 例如,你可能有更多的记录比你可以轻松地适应在一个页面上同时编辑。 或者你可能需要支持添加,复制,删除记录作为原子操作的一部分。 或者你可能想在视觉组字段放置在一个单一的表细胞。 批量编辑器部件支持所有这些可能性。
( 点击玩这个例子的截图 。)
概观
批量编辑构件由三部分组成:
-
Data source 这包装一个YUI DataSource和管理的变化:插入,删除,更改后的值。
-
Base widget 这提供管理记录,并在每个记录中的字段编辑的基本结构。 派生类是负责渲染成一个单独的
行
,这可能是一个div,TBODY,或其他容器的每个记录。-
HTML table implementation 这延伸到TBODY呈现在一个HTML表中每个记录的基础构件。 决定哪些字段显示在表中的每一列列配置。 可用于自定义单元格格式化,呈现在一个单一的表单元格中的多个领域。
组态
在这个例子中,生成上面的截图,配置一直保持尽可能简单:
fields定义在每个记录中可编辑的值。 输入
默认的类型。 有效的其他类型的选择和
textarea。 ( 选择
需要的值列表。)基本验证所提供的表格经理画廊模块。 这包括所需的字段,长度的限制,和数值范围 。 更复杂的验证,可以由指定regex或自己的函数( fn )。 这里是一个活生生的例子摘录:
VAR领域= { 标题: { 类型:'textarea的' }, 年: { 验证: { CSS:'yiv的整数:[1500,2100]“ } }, 颜色: { '选择',类型: 值: [ {值:“红”,文字:'红'}, {值:“绿色”,文字:“绿色”}, {值:“蓝”,文字:'蓝'} ] } };
Y.BulkEditDataSource需要的一个实例Y.DataSource以下参数:
-
uniqueIdKey 一键唯一标识每条记录的名称。
-
generateRequest 函数产生的请求参数
Y.DataSource。 (这是空的,因为在这个例子Y.DataSource.Local总是返回的所有数据。)-
extractTotalRecords 一个函数来提取记录总数从
Y.DataSource响应。
例如使用Y.DataSource.Local , totalRecordsReturnExpr也是必需的。 该OGNL表达式指定在响应存储的记录总数。 (请注意, extractTotalRecords读取该值。)
VAR DS =新Y.BulkEditDataSource( { DS:raw_ds, uniqueIdKey:'身份证', generateRequest:函数(){} totalRecordsReturnExpr:'meta.totalRecords“ extractTotalRecords:函数(响应) { 返回response.meta.totalRecords; } });
Y.HTMLTableBulkEditor需要的数据源,现场配置,列配置。 列中的配置,关键是字段的名称,除非您指定一个自定义的格式化。 标签被用作列标题。 这里是一个活生生的例子摘录:
VAR列= [ { 键:“复选框, 标签:的<input type="checkbox" id="select-all" />', 格式化函数(O) { VAR标记<input type="checkbox" class="record-select" id="{id}" />'; o.cell.set('innerHTML的“,Y.Lang.sub(标记, { ID:this.getRecordId(o.record) })); } }, {键:'标题',标签:“标题”}, 关键:“今年'标签:'年'}, {键:“颜色”标签:“颜色”} ;
(需要注意的是活生生的例子定义了一个小扩展到Y.HTMLTableBulkEditor处理复选框列)。
你也可以传递一个的实例Y.Paginator到Y.BulkEditDataSource 。 在一个单独的,更复杂的活生生的例子说明了这一点。
本地与远程数据源
当决定是否要使用本地或远程数据源,你必须仔细考虑权衡。 明显的权衡是本地的数据源时,分页,但初始页面加载需要更长的时间,它需要在客户端上更多的内存。
批量编辑部件施加额外的取舍,但是。
首先,YUI的数据源必须返回不可变的数据。 这是本地数据源的自动的,但可能会非常棘手实现远程数据源。 您将需要批量编辑操作的持续时间锁定数据库中的表行,如果多个用户可以修改他们。
第二,本地和远程数据源之间的选择会影响你如何保存数据。 当您使用本地数据源,你可以做最省力
,即,保存到服务器的所有有效的记录,他们从本地的数据源中删除,并允许用户把重点放在有无效值的记录。 当您使用远程数据源的,不可改变的要求只允许你做的所有或任何
节能,即,数据只能被保存后,所有的数据是有效的。
现实世界中使用案例
批量编辑器部件的原始动机是允许上传的电子表格后处理。 引入后的处理步骤,消除了需要电子表格值是完美的。 错误可以是标记和固定的,而不是拒绝整个上传批量编辑器部件。 此外,在服务器上进行处理,可以做到每个记录所需的附加价值的最佳猜测分配,用户可以保存前检查和修复这些额外的价值。 这简化了初始创建的电子表格。
在这种情况下,远程数据源是最好的选择。 上传的数据存储在一个临时空间,因此,保证不可改变的,因为没有其他用户可以看到它。 “全有或全无”节能是适当的:一旦所有的错误已得到修复,保存操作是原子的,就像一个标准的上载操作。
共享和扩展: 书签del.icio.us Digg它! | reddit!


