有人在项目中用过kissy框架吗?

2013-05-18 11:11:19 +08:00
 yakczh
简单测试了一下
至少要用  seed.js
config.js
 基础组件combine.js
页面主引导脚本.js
四个请求

另外按需加载要等用户触发时再去下载相应的模块,会不会对用户体验有影响?
12303 次点击
所在节点    JavaScript
14 条回复
plprapper
2013-05-18 11:14:47 +08:00
淘宝主站的功能应该都是kissy了,体验的问题你应该有感觉。
chemzqm
2013-05-18 11:32:40 +08:00
实际上线前请求可以在后台合并的
xiaoxuxu
2013-05-18 13:43:56 +08:00
@plprapper 网速慢的时候,往下拖网页体验不好。但是好处是一开始网页很快就加载完成了
hxgdzyuyi
2013-05-18 13:49:21 +08:00
我觉得jquery就很好呀。 不是很明白替换kissy的动机是啥 , 或者说kissy有什么特别好的优点么~

按需加载的有很多其他的选择嘛 requirejs 什么的
zythum
2013-05-18 14:09:59 +08:00
我总有种kissy是玉伯玩剩下的东西。
chemzqm
2013-05-18 14:21:16 +08:00
@hxgdzyuyi 淘宝选择kissy大致跟yahoo的yui有关,丰富的底层组件、模块化、沙箱机制保证大规模开发的质量。当时requirejs那一类框架还没诞生吧
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
zythum
2013-05-18 16:58:33 +08:00
@benzhe
记得kissy 最早的时候朱一用过。还在大三大四的时候。只是一个简单的类库。还没有seed这个目录。
按需加载 说白了就是打包的时候把哪些东西打进去。不需要的不用打进去了。

感觉悲催的是。
我怎么记得kissy的最早作者是玉伯。然后玉伯现在在支付宝折腾arale了...
现在kissy的维护貌似是承玉他们了。
不过前端时间貌似承玉还说过kissy的升级什么的。貌似淘宝应该还是用的挺欢。店铺的一些东西也是可以用一些kissy组件写个效果什么的。

不过反倒是现在没怎么空去用用araleJs, 现在js的框架多的和什么似的。上班用着自己公司的框架。真的没时间去折腾这些了。 困
yetone
2013-05-18 17:04:04 +08:00
关于淘宝为什么要造 kissy 这个轮子,请看玉伯的这个回答:http://www.zhihu.com/question/20099586/answer/13971670
所以吧,还是用 jquery 吧
yakczh
2013-05-20 12:20:30 +08:00
http://aralejs.org/docs/online-status.html

貌似这个也是用用seajs加载, 一样用服务器combo打包,跟kissy有什么区别吗,难道淘宝主要就用同样的技术,不停地造新的轮子?
chemzqm
2013-05-20 14:00:20 +08:00
@yakczh 不是同样的技术,总的来说SeaJS的加载方式更灵活,更通用一些,Kissy是根据淘宝的业务需要发展起来的,而Arale是根据支付宝的业务需要发展起来的;它们未必最能满足你自己项目的业务需要,选框架就跟选对象一样,要选合适的而不是最好的。
yakczh
2013-05-21 17:06:20 +08:00
按照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
hxgdzyuyi
2013-05-22 14:01:28 +08:00
@chemzqm 但是现在已经有了成熟的amd解决方案。 包括seajs。 seajs也可以不需要使用kissy~ 所以目前选择kissy来开发的好处还有什么呢?
yakczh
2013-05-22 14:25:50 +08:00
seajs不是说是cmd规范吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/69287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX