[JK] QWrap简介之:core_retouch ---渲染原生类

Prototype框架最开始挖掘了javascript的prototype,不过原型渲染是有代价的,例如:IE下为Array.prototype 添加forEach后,会导致对数组作for in循环时,多出一些不希望看到的东西。这是因为我们添加的方法,在某些浏览器下,无法进行设置enumerable为false,导致它会被for in出来。但是易于使用又诱惑我们那样做,我们需要有所取舍。
这里推荐的core_retouch是将风格调成与prototpye框架一致,所以也会有prototype所拥有的缺点:
1。如果渲染的方法与标准有差异,会给某些用户留下坑坑。
2。同时存在多个JS框架时,如果都想渲染同一个方法,而各自实现不同,可能会有冲突。
3。如果原型已有某方法,再强制渲染的话,可能会损失效率。
4。如果用谦虚渲染(不覆盖已经存在的),则需要自己的实现与标准尽量做持一致,以免产生不同的浏览器兼容不一致。
5。没有标准可依的,如果我们现在加上去,用户已接受这种用法,也要小心:万一以后新标准有了,那么现在的实现就成了历史包袱。
6。Array.prototype如果被渲染了,会造成array的for in功能障碍。
7。Object.prototype如果被渲染了,会造成object的for in功能障碍。----所以,千万别这么做。
…………
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 26, 20110 CommentsTag : none

[JK] QWrap简介之:Retouch ---润饰、渲染

站在QWrap开发者的角度看:我们“应该提供”一个只有一个全局变量的库,这样才不会与别人产生冲突。
站在QWrap使用者的角度看:我们“要用”一个简单易用的东西,我们对“严谨性”没有“洁癖”。
这似乎是一个矛盾,开发者觉得自己的义务是提供严谨标准的产品,而使用者觉得自己的目的是用一个简单方便的产品。
他们的价值取向不同,生硬的对接难免有摩擦。
Retouch就是为解决这类问题而来的:开发者不用改变自己的理论追求,使用者也不用调整自己的实用要求,让Retouch来把开发者提供的生硬的产品,改装渲染出一个易学易用的产品。
Retouch,可译作修描、润饰、渲染。
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 26, 20110 CommentsTag : none

[JK] QWrap简介之:EventW ---Event包装

事件在dom操作中,也有着重要的意义。不过,对于项目程序员同学,只需知道怎么用就可以了。如果在看本文之前,还没有理解清楚标准的dom event,那么请忽略本文,免得产生更多的纠结。
事件对象与节点对象一样,无法通过渲染原生dom的Event的原型来达到扩展与兼容的效果,所以,也采用Wrap模型来解决这个问题。
EventW就是针对Event的包装。它的核是原生的event。
前面介绍NodeW是按进化的思路由浅入深的介绍,反个方向,从最终用法来反观EventW的实现。
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 26, 20110 CommentsTag : none

[JK] QWrap简介之:NodeW ---Node包装

节点操作需求多样,如果只局限于节点原型扩展,会阻碍重重束手束脚。针对节点的包装“NodeW”的出现,把节点的操作带到了一个没有边际的新天地。
本文讲述NodeW的进化过程:从最简单形式进化成强大成熟易用的NodeW。
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 26, 20110 CommentsTag : none

简要介绍helper的helper

Helper-Helper是对于helper的helper,由月影亲自设计,思路非常巧妙,为qwrap框架的上层架构提供了灵活简单可配置的基础架构

一 Helper-Helper::mul
二 Helper-Helper::rwrap
三 Helper-Helper::methodize
四 Helper-Helper::gsetter

详情介绍:http://lichaosoft.net/archives/1461

Posted in : 开发相关by : CCMarch 25, 20110 CommentsTag : javascript, QWrap, helper

[JK] QWrap简介之:Wrap模式

前面已讲了不少Helper的内容了,下面再介绍一下“Helper + Wrap + Retouch + Apps主线”中的Wrap。
Wrap是什么?
Wrap就是在一个核(core)的外面包的一层皮。
可以为Wrap加很多针对它的core的方法。
这样理解:Wrap是一个剃须刀包装盒,core是被包装的剃须刀,现在包装盒子上有很多说明,并不是在说这个盒子,而是在说被包装的剃须刀。
-----有了这个盒子后,剃须刀还是原封不动的,但是剃须刀却有了“说明书”的功能。
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 24, 20110 CommentsTag : none

[JK] QWrap简介之:HelperH 针对helper的Helper

HelperH是针对helper的Helper。
这个理解可能有点绕。
如之前的介绍,Helper对象是满足“纯洁”“静态”“针对性”的对象,那么,针对“‘纯洁’‘静态’‘针对性’的对象”的一个“纯洁”“静态”“针对性”的对象,就是针对helper的Helper了。
OK,理解了这个有点绕的概念之后,再来看下这个HelperH吧。

众多helper满足Helper规范,那么,可以针对这些很规范的对象的所有方法,作一些移植或变换处理。
因为处理是一致的,所以,我们把这些处理也抽象成方法,集成在HelperH中。

…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 24, 20110 CommentsTag : none

[JK] QWrap简介之:FunctionH 针对function的Helper

正如《序》里所说,很多同学是由于对函数变换(泛函)感兴趣,从而来了解QWrap的,例如,从月影的博客三言两语说清QWrap核心模式精髓而来的。
FunctionH的代码,也就那么几十行。不过,如果不理解思路,可能会因为“函数变换”的概念有点难于理解,而放弃对QWrap的围观。
本文粗略的介绍一下FunctionH的思路。
FuncitonH,就是什对function的Helper。
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 24, 20110 CommentsTag : none

关于兼容多浏览器loadCss的onComplete事件的思考

经过实际测试后发现,safari,chrome与firefox浏览器并不支持link元素的onload事件,而ie6,7,8支持link的onload事件。

那么我们该如何对safari,chrome及firefox等浏览器进行hack来支持该事件呢,以及对此功能进行hack的代码是否应该放在一个需要发布的公共库中呢?

详情参见:loadCss的一些思考

Posted in : 开发相关by : CCMarch 23, 20110 CommentsTag : javascript, css, loadcss

[JK] QWrap简介之:Helper堆砌

有了Helper规范,我们就可以根据它来“堆砌”一个库了。
QWrap里有哪些Helper或Util?列出一些主要的,如下表。
....
QWrap的主干(即定义QW根命名空间的core/core_base.js)加上这些Helper,就是一个大的函数库了。
里面的所有方法都是静态函数,由此构成了QWrap的基础静态方法库。
…………点击这里,查看更多详情

Posted in : 杂七杂八by : JKMarch 22, 20110 CommentsTag : none