浏览 5391 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-03
Prototype:
特色:prototype的特色用俗一点的话表示就是:“prototype函数库增强了各个厂家的浏览器对js的支持”,它添加了一系列的非常有用的函数。 缺点: 1、能够直接用的插件很少; 2、效果库使用script.aculo.us; 3、文件比较大,效果库script.aculo.us也比较大; 4、不支持js压缩(比如yui),script.aculo.us支持压缩,虽然我们可以在http连接端使用gzip压缩,但是考虑多种浏览器对gzip压缩的支持,另外我们在考虑浏览器兼容gzip时,需要同时考虑gzip与http(cache,304)问题,关于cache的问题请参考RFC2616规范,这里就不多说了。 Jquery: 特色:“Write less, do more”、“插件非常的丰富”,世界是由懒人推动的,所以jquery才这么流行,甚至一个刚对js入门的人利用它的插件都可以做出令人炫目的效果。 缺点:目前没有发现,非要找出来一个的话就是“源代码和prototype一样很难读”。 Mootools: 特色:代码写的比较容易读懂,代码模块化可以随意定制你想要的部分,不过我试了一下,各个模块直接的依赖仍然不少。 缺点:兼容性做的不太好。 目前状态: 原有项目使用的是prototype和script.aculo.us,要求完全兼容IE6、IE7、IE8、FF2、FF3;要求基本兼容safari、iphone上的safari、opera、charome; prototype和script.aculo.us加起来实在太大了,而且不能压缩,有些特殊的业务逻辑要求必须要修改script.aculo.us才能实现,同时有些业务又需要自己来实现一些特殊效果; 是在是郁闷了,于是开始着手研究prototype源码,不得不说是高手写的框架,那么多的依赖,改一个地方会涉及N个地方,放弃hack它的想法了; 然后是jquery,看代码发现和prototype一样是蜘蛛网,jquery选择器是如此强大,建议各个浏览器厂家用原生代码来实现,不过怎么看它也就是一个选择器,做复杂点的应用肯定不能用; 然后是Mootools,现在正在进行中,正在用mootools来实现prototype中常用的函数,这样目前的代码就不用变化了,小组的人也不用学习新的东西。 但问题也逐步显现:1.兼容性不太好;2.细节处的实现效果也不好;3.有些源代码写的不够严谨; 现在又有点打算放弃mootools了,可能还剩下最后一条路:修改prototype的源代码,精简代码使体积变小;修改代码中不支持压缩的部分。 也希望论坛的朋友们给提点一下,thanks。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-03
最后修改:2009-04-03
mlw2000 写道 prototype和script.aculo.us加起来实在太大了,而且不能压缩
please google protoaculous.1.8.2.min.js mlw2000 写道 有些特殊的业务逻辑要求必须要修改script.aculo.us才能实现,同时有些业务又需要自己来实现一些特殊效果;
可以自定义自己的类,也可以继承原有的类实现扩展,不明白为什么要修改script.aculo.us。JavaScript的Mixed-in的特性不就是让你自由扩展的嘛? JQuery的组件多的数不胜数,没有一款能满足你的要求而要自己写? |
|
返回顶楼 | |
发表时间:2009-04-03
downpour 写道 mlw2000 写道 prototype和script.aculo.us加起来实在太大了,而且不能压缩
please google protoaculous.1.8.2.min.js mlw2000 写道 有些特殊的业务逻辑要求必须要修改script.aculo.us才能实现,同时有些业务又需要自己来实现一些特殊效果;
可以自定义自己的类,也可以继承原有的类实现扩展,不明白为什么要修改script.aculo.us。JavaScript的Mixed-in的特性不就是让你自由扩展的嘛? JQuery的组件多的数不胜数,没有一款能满足你的要求而要自己写? 难道是: 只看到自己造的轮子-- 看不到满大街的车子~~ |
|
返回顶楼 | |
发表时间:2009-04-03
downpour 写道 please google protoaculous.1.8.2.min.js 看到过这个压缩版,不过这个压缩后的大小有140K多,140K你不觉得过分了吗? downpour 写道 可以自定义自己的类,也可以继承原有的类实现扩展,不明白为什么要修改script.aculo.us。JavaScript的Mixed-in的特性不就是让你自由扩展的嘛? 可以继承,也可以覆盖,例如我们看一下prototype的String的escapeHTML代码,你就不会这么说了。 我用1.5.1版,这一版它的Hash实现在特殊情况下会有问题的,同样现在的Mootools1.2.1的Hash实现和prototype一样。 downpour 写道 JQuery的组件多的数不胜数,没有一款能满足你的要求而要自己写? 绝大多数都是95%满足怎么办,肯定要修改?再者插件是满足要求了,整个框架你不会也要用Jquery来实现吧,个人认为如果用Jquery来做做小工具还比较有优势,如果拿他来写大批的代码,肯定会被后人骂有病滴呵呵? |
|
返回顶楼 | |
发表时间:2009-04-04
prototype.js也是可以根据需要定制大小的。
prototype.js也就是extend方法和一些函数集合(大体上是这样),你可以根据选择来build.(实际上它也是单独开发然后从好几个js文件构建成为一个的) http://www.prototypejs.org/download 这个地方介绍了如何用rake去构建,希望有所帮助。 script.aculo.us也可以根据需要来定制大小。 通过混淆器可以大幅度减小js的规模: http://www.dojotoolkit.org/docs/shrinksafe 还有一些在线混淆器也可以使用。 另外还有个方法是使用第三方host的js,如你所说 |
|
返回顶楼 | |
发表时间:2009-04-04
mlw2000 写道 downpour 写道 please google protoaculous.1.8.2.min.js
看到过这个压缩版,不过这个压缩后的大小有140K多,140K你不觉得过分了吗? downpour 写道 可以自定义自己的类,也可以继承原有的类实现扩展,不明白为什么要修改script.aculo.us。JavaScript的Mixed-in的特性不就是让你自由扩展的嘛?
可以继承,也可以覆盖,例如我们看一下prototype的String的escapeHTML代码,你就不会这么说了。 我用1.5.1版,这一版它的Hash实现在特殊情况下会有问题的,同样现在的Mootools1.2.1的Hash实现和prototype一样。 downpour 写道 JQuery的组件多的数不胜数,没有一款能满足你的要求而要自己写?
绝大多数都是95%满足怎么办,肯定要修改?再者插件是满足要求了,整个框架你不会也要用Jquery来实现吧,个人认为如果用Jquery来做做小工具还比较有优势,如果拿他来写大批的代码,肯定会被后人骂有病滴呵呵? 我是一个不懂理论的人,站在我的角度,你的所有论断我没有看出实践上的支持。 一个148k的js,通常情况下只要下载一次,不知道你所说的过分在哪里。 escapeHTML的源码和继承覆盖的关系到底在哪里,你给我解释一下,看看我能不能帮你。Hash实现在什么样的特殊情况下会有什么问题,也请仔细描述一下,大家一起出谋划策来解决一下。 我还是不能理解,现在许多的网站都把JQuery作为一个基本的依赖库,所以不清楚你所说的“拿他来写大批的代码,肯定会被后人骂有病滴”是从哪里推断出来的? |
|
返回顶楼 | |