1
plprapper 2013-05-18 11:14:47 +08:00
淘宝主站的功能应该都是kissy了,体验的问题你应该有感觉。
|
2
chemzqm 2013-05-18 11:32:40 +08:00
实际上线前请求可以在后台合并的
|
4
hxgdzyuyi 2013-05-18 13:49:21 +08:00
我觉得jquery就很好呀。 不是很明白替换kissy的动机是啥 , 或者说kissy有什么特别好的优点么~
按需加载的有很多其他的选择嘛 requirejs 什么的 |
5
zythum 2013-05-18 14:09:59 +08:00
我总有种kissy是玉伯玩剩下的东西。
|
6
chemzqm 2013-05-18 14:21:16 +08:00
@hxgdzyuyi 淘宝选择kissy大致跟yahoo的yui有关,丰富的底层组件、模块化、沙箱机制保证大规模开发的质量。当时requirejs那一类框架还没诞生吧
|
7
benzhe 2013-05-18 14:56:11 +08:00
整个淘宝都在用 KISSY,肯定不会坑你的,虽然它还在完善中。
对于 lz 的问题,KISSY 很重要的一个自动 combo 机制(需要服务器支持),只要事先配置好包依赖,就可以将整个页面的脚本简化为两个,一个 kissy(或者seed.js),一个 combo 后的地址 kissy 文档中的提到「按需加载」,更多的的是指开发者需要用到哪些模块才去配置,而不是等用户触发加载,因为 seed.js 只包括一些核心方法和 loader。 @xiaoxuxu 滚动的体验问题大多是图片懒加载造成的;图片懒加载为了避免页面一下子请求巨多图片,这样体验反而更差了 @zythum 这么说应该会被玉伯打 PP 的,kissy 是一个完整的 js 框架,而 seajs 只是 loader |
8
zythum 2013-05-18 16:58:33 +08:00
@benzhe
记得kissy 最早的时候朱一用过。还在大三大四的时候。只是一个简单的类库。还没有seed这个目录。 按需加载 说白了就是打包的时候把哪些东西打进去。不需要的不用打进去了。 感觉悲催的是。 我怎么记得kissy的最早作者是玉伯。然后玉伯现在在支付宝折腾arale了... 现在kissy的维护貌似是承玉他们了。 不过前端时间貌似承玉还说过kissy的升级什么的。貌似淘宝应该还是用的挺欢。店铺的一些东西也是可以用一些kissy组件写个效果什么的。 不过反倒是现在没怎么空去用用araleJs, 现在js的框架多的和什么似的。上班用着自己公司的框架。真的没时间去折腾这些了。 困 |
9
yetone 2013-05-18 17:04:04 +08:00 via Android
关于淘宝为什么要造 kissy 这个轮子,请看玉伯的这个回答:http://www.zhihu.com/question/20099586/answer/13971670
所以吧,还是用 jquery 吧 |
10
yakczh OP http://aralejs.org/docs/online-status.html
貌似这个也是用用seajs加载, 一样用服务器combo打包,跟kissy有什么区别吗,难道淘宝主要就用同样的技术,不停地造新的轮子? |
11
chemzqm 2013-05-20 14:00:20 +08:00
@yakczh 不是同样的技术,总的来说SeaJS的加载方式更灵活,更通用一些,Kissy是根据淘宝的业务需要发展起来的,而Arale是根据支付宝的业务需要发展起来的;它们未必最能满足你自己项目的业务需要,选框架就跟选对象一样,要选合适的而不是最好的。
|
12
yakczh OP 按照http://seajs.org/docs/#quick-start 这上面的配置
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title></title><script charset="utf-8" id="seajsnode"src="http://static.alipayobjects.com/seajs/1.3.1/??sea.js,plugin-combo.js"></script> <script> seajs.config({ // 配置插件 plugins: ['shim'], // 配置别名 alias: { // 配置 jquery 的 shim 配置,这样我们就可以通过 require('jquery') 来获取 jQuery 'jquery': { src: './js/jquery-1.7.1.min.js', exports: 'jQuery' } } }); define(function(require, exports, module) { var $ = require('jquery'); }); </script> </head><body><button id='demo' > demo</button> <script type="text/javascript"> seajs.use(['jquery'],function($){ console.log($); $('#demo').click(function(){ alert('ok'); }); }); </script> </body></html> firebug控制台报错 Error: $ is not a function |
13
hxgdzyuyi 2013-05-22 14:01:28 +08:00
@chemzqm 但是现在已经有了成熟的amd解决方案。 包括seajs。 seajs也可以不需要使用kissy~ 所以目前选择kissy来开发的好处还有什么呢?
|
14
yakczh OP seajs不是说是cmd规范吗?
|