循环反转示例:
for(var i = 0;i<data.length;i++){
//.
}
//倒转后代码
for(var i = data.length-1;i>=0;i--){
//.
}
这类优化的作用是明显的,但是具体有多大作用呢?
用一个长度为100 000 的数组测试一下:
515/313
500/313
516/312
516/328
516/328
可见,循环反转后,只需要原来3/5的时间.
但是,这种东西到底有多大价值?FF上200次循环仅需要1毫秒的时间.所以,个人认为,只要循环的内容不是太长,使用不算非常 ...
在JSI的实现中,有这样一种需求,将有自带命名空间的脚本元素名数组转换成没有命名空间的变量名数组.
比如 :
['YAHOO.util.XXXX,YAHOO.util.YYYY,YAHOO.event.XX'] ->['YAHOO']
以前一直是较长的一段处理代码,今天突发奇想,这个用正则表达式处理效果如何?
于是,就这种处理,分别测试了正则表达式和javascript代码的效率.
测试数据如下(regTime /codeTime):
620/4536
729/4068
719/4250
645/4152
655/4642
FF和IE结果差不多,上面 ...
一直都认为,javascript的函数调用是一个相对耗时的操作。
开始JSI的优化,这些问题现在必须认真考虑了,测试一把:
一个简单的++操作,直接操作和函数内操作(注,函数参数对原始类型是值传递,所以这不会影响被传入的变量,这里测试里面,两类操作的行为是不一样的)
FF2测试结果(callTime/opTime):
2871/2582
2919/2675
2734/2704
2953/2516
3732/3346
IE7测试结果:
3140/376
3173/327
3238/247
3265/235
3217/299
通过测试可见,函数调用的消 ...
前几天无意中看到一个网友blog上关于这个循环效率的问题,说要尽量避免使用。
有点害怕,我在JSI中可是用了不少,呵呵。
测试一下,负担终于可以放下来了:
测试对象:
一个对象模拟map,测试for in 循环
两个数组,测试for(;;)循环
连续4次运行时间比。
957/1278;955/1357;1014/1282;968/1392
明显,要实现类似map的功能,还是for in 快点。
上面的数据是ff2上的结果,ie7上也差不多,差距更小一点。
测试代码:
js 代码
function C(i) ...
刚刚修正了一个JSA的bug。
顺便测试了一下文本压缩的性能,和纯packer 压缩,ShrinkSafe+packer压缩。
压缩大小:
jquery-jsa-s.js(JSA的语法压缩):29766
jquery.compressed.js(ShrinkSafe语法压缩):33992
jquery-jsa-st.js(JSA的语法压缩+文本压缩):19526
jquery-packer.js(Packer文本压缩):20977
jquery.compressed-packer.js(ShrinkSafe语法压缩+Packer文本压缩):21839
有点奇怪的 ...
以前JSI的依赖管理设置时,依赖元素可以用* 、含有*的匹配模式、数组和单个元素。
感觉这样处理难度增加了很多,决定吧匹配模式去掉,只支持 *、数组和单个元素
含有*的匹配模式可以用精确的数组代替。
原来的做法太复杂了,改简单一点,提高效率,便于优化。
JSI 日志是JSI内核中唯一的一个具体功能。
在2.0preview 中,默认是输出倒错误控制台的。
实现方式
setTimeout(function(){
throw new Error(错误信息)
},0)
但是这样貌似有个异步代码错误插入的问题(当有程序异步调用时,setTimeout抛出的错误可能会导致异步代码中抛出异常,就像错误发生在异步代码中一样)。
所以这个问题必须解决了。
原先的想法是模仿log4javascript。 那样,在日志窗口,可以实现很多复杂功能。
但是,因为日志系统时内核的部分,不想做的太复杂。打消了这个念头。
不过,可以 ...
最近在搞JSI 的重构,少来冒泡了。
发一个中午的刚用到的小技巧:
在关机效果实现上,现在一般根据浏览器特征分别使用 虑镜/样式/图片 去模拟。
其中Opera是不支持网页透明的,只能用png的alpha透明模拟。
所以,我们需要一张特别的小图片。一个象素,alpha透明。
但是这个单象素图片的出现,感觉有点怪怪的,而且当网速很慢的时候,装载这个小图片还会延迟,效果不好。
不过,Opera的另外一个特性,可以避免这个问题:data:协议的支持。
对于这种小图片,完全可以编码到样式里面
css 代码
background-ima ...
- 15:14
- 浏览 (5103)
- 评论 (4)
- 分类: JavaScript
- 进入论坛
- 发布在 JSI Side 圈子
第一次见到媒体的关注,精神为之一振。
^_^
一定好好做,不让关注她的人群失望:)
发布了一段时间JSI2预览版了,下一步准备JSI2Alpha版开发。
主要任务有:
1、优化依赖管理模块。
2、完善日志输出功能。
3、清理现有bug。
预计需要3周左右时间。
按需装载的优化、JSDoc的完善、将推后。
示例装饰器将暂时停止更新。
http://www.xidea.org/project/jsi/index.html
Spinner(微调器)装饰器开发:
组件介绍:
仿照 window时间日期管理中,年份调节的控件,原型是一个文本输入筐,一般用于数字输入。筐后有上下微调按钮,用于增减控件值。
这种控件在backbase框架中也有出现,JSI的spinner就是仿照其外形设计。
显示效果:
在线演示见:http://www.xidea.org/project/jsi/decorator/spinner.html
代码:
org/xidea/decorator/spinner.js
/**
* @public&nbs ...
基于FCKEditor 开发JSI Editor装饰器:
组件介绍:
JSI Editor装饰器,是一个用于可视化html编辑的组件(当能,将来也可考虑其他格式,如ubb),在标记设计上,参照Mozilla XUL的editor标记。而具体实现上,使用FCKEditor。
效果:
装饰器实现代码:
/**
* @public
* @decorator editor
* @attri ...
var test1 = 1;
function test1(){};//函数申明不能覆盖变量申明?
alert(test1);
var test2 = 1;
eval('function test2(){};');
alert(test2);//函数申明怎么又覆盖了变量申明?
JSA 1.0 Alpha发布,压缩效率提高大约10%
最新更新(2007-05-23 IE5 bug) 感谢 PHPRPC 作者 andot 的bug报告:
下载地址:http://sourceforge.net/project/showfiles.php?group_id=175776
压缩算法改进:
实现了自己的文本压缩算法
提高了压缩比率以及解压效率。
优化了语法压缩
合并连续var申明,
删除了多余var申明,
删除了多余大括弧({、}),
...
邀请第三方团队开发页面装饰器实现的公开信
页面装饰引擎简介
用于装饰朴素html元素的框架,使用简单的xml标记,标识期装饰行为,比如将一个普通的input装饰成一个日期输入控件。将一个textarea装饰成一个代码语法高亮显示区域,或一个wysiwyg html编辑器。 JSI启动后将采用异步方式,自动检查decorator标记,自动做相关类的寻找、导入并装饰页面。
实现零脚本代码的web富客户端编程:
更多信息参考:
示例装饰器演示:http://www.xidea.org/project/jsi/decorator/index.html
JSI项目主页:htt ...
- 浏览: 203612 次
- 性别:

- 来自: 初到北京

- 详细资料
搜索本博客
最新评论
-
JSI 类库文件格式探讨
应该是jsa啥时候有新版本
-- by dingyuan -
JSI 类库文件格式探讨
jsi啥时候放新版本啊
-- by dingyuan -
最近工作上比较郁闷
一个人犯错误不要紧,总要得是能从错误中吸取教训,并且不要再犯第二次。我觉得不应该 ...
-- by twfx -
2008年我可以做一些什么
呵呵,开始了一些,完成了一些,黄掉了一些。
-- by jindw -
2008年我可以做一些什么
你的计划开始了吗?
-- by programmer






评论排行榜