发布一个JSI Example Project
部署到Tomcat中,打开script目录,可以显示你当前script目录下全部托管脚本的API试图。
导出功能介绍:
导出成jsidoc文档 (单个文件)
合并脚本(可以选择不同的隔离级别)
by jindw 2008-04-30 浏览 (460) 回复 (0)
JSI Side 代码风格与规范
准备编写JSI的外围元素,先整理一下编码风格和一些约定,欢迎大家讨论。
基本风格
* 基本参照Java代码风格。
1. 驼峰式命名(单词无连接字符,单词首字母大写,其余小写);
  ...
by jindw 2008-04-29 浏览 (475) 回复 (24)
2008年我可以做一些什么
1。寻找值得合作的人。
2。完成JSI IDE的计划。
3。初步完成前端模板编译系统。
4。建立JSI开发社区,推广JSI的开发模式。
5。关心一下技术之外的事情...
本来就是个没有计划的人,现在就想到这些了,再想到再补充
by jindw 2008-02-24 浏览 (3313) 回复 (0)
JSI的延迟装载和异步装载过程的一些原理解释
出自该贴的回复:
http://www.javaeye.com/topic/161609
JSI的延迟装载和异步装载过程非常相似.
他们的实现是这样的:
1.计算出全部未装载的依赖,并将依赖加入缓存.
2.执行同步装载.
其实所有的三种装载方式,原理都是一样的,只不过非同步装载在真正装载前有个预处理.
而异步装载和延迟装载的区别也就在于预处理过程中如何缓存脚本.
异步装载就是直接xhr异步读 ...
by jindw 2008-02-14 浏览 (3316) 回复 (0)
动态装载脚本的调试问题
一个论坛回复,粘贴过来. 关于调试问题,同类动态装载脚本的实现都有类似问题。这个问题在JSI中有一些解决办法,先给大家截个图。 这时JSI2.1在firebug上做脚本调试时的截图,我们可以轻松定位到没个源文件,可以在其中设置断点,一旦有错误,可以准确定位到准确行数。PS:JSI2.1 以基本开发完成,将择日发布 &nbs ...
by jindw 2008-02-12 浏览 (3322) 回复 (0)
JSI的导入指令参数顺序调整意见征询
改动
2.0方式:
$import(path,callbackOrLazyLoad,target)
调整成(将target参数提前)/** * @param <string> path (package:Object|package.Object|package.*| scriptPath) * @param < Object> t ...
by jindw 2008-02-07 浏览 (3655) 回复 (34)
JSI2 新功能预告:类库导出支持、Ext集成
* 类库导出支持(完全脱离JSI环境)
从JSI托管类库中,选择文件/对象集,导出为单一脚本文件,完全脱离JSI装载环境。
也就是说,届时JSI不仅可以作为一个运行时的脚本管理框架,也可以当作一个部署时的脚本定制、打包工具。
我是看Ext的定制工具后产生这个想法的,JSI的依赖定义API完全可以用作一个通用的脚本定制、打包工具的依赖描述语言。
* Ext集成(延期。。)
集成 ...
by jindw 2007-07-12 浏览 (5432) 回复 (2)
JSI2性能测试报告
装载效率测试
测试页面见:test/load-eff-test.html
为了测试结果更显客观,我选择了第三方类库的装载测试:
'com.yahoo.yui.*',
'net.conio.prototype.*',
'net.fckeditor.*',
'org.jquery.*',
'us.aculo.script.*'
共22个脚本文件(对于JSI来说还有诺干包定义文件)。
FF2:
标 ...
by jindw 2007-06-22 浏览 (6382) 回复 (15)
JSI2Alpha及JSA1beta 发布:
JSI2Alpha及JSA1beta 发布:
引用JSI简介:
JSI 是一个 开放的、无侵入的 脚本库管理框架,内核不提供任何具体功能,有一些功能子项目,如网页装饰引擎。
JSI2性能测试报告:http://jindw.javaeye.com/blog/93118
更多信息请查看:http://www.xidea.org/project/jsi/
JSA简介:
JSA最初是做JSI编 ...
by jindw 2007-06-22 浏览 (7326) 回复 (18)
JavaScript模板引擎测试,让我空欢喜一场:(
测试了一下trimpath模板引擎和一个我以前编写xml模板引擎,显示测试结果,耗时比 :828/16。
太让我振奋了。原想,如果效率太低我就放弃这个项目,貌似结果:这个流行的js模板引擎,和我没做优化的xml模板引擎还有这么大的差距???
仔细检查一下,晕倒,测试模板数据搞错了:(
纠正过来,测试数据显示,trimpath比xml模板引擎要快好几倍:(
而且,如果模板内使用的循环次数越多 ...
by jindw 2007-06-08 浏览 (2578) 回复 (1)
JSI2 API重构进展
引用为了jsi2 alpha的尽快发布,我对jsi 的系统api重构了一下,删除了一些不够成熟或者没有必要的api(将他们拖到org.xidea.* 命名空间下)。
更新(2007-6-9)
#js.html //保留这个包,因为这些实在太常用了,
* BrowserInfo
//保留Decorator是因为装饰器初始化,还是受到点特别关照
* Decorator
* EventUtil
* S ...
by jindw 2007-06-07 浏览 (5929) 回复 (14)
JSI API之BrowserInfo、EventUtil讨论
引用JSI 自身提供一些常用API,数量极少,尽量以一种正式的风格提供,尽量回避争议。
有些是启动文件用到的,如任务队列支持,还有如装饰引擎直接用到的,如BrowserInfo、EventUtil、StyleUtil等。
对于启动文件中未直接用到的,如果风格的争议太大,都将剔除出去。
BrowserInfo对象:
/**
* BrowserInfo 对象,用于判断浏览器的相关信息,如浏览器类 ...
by jindw 2007-06-06 浏览 (5423) 回复 (16)
javascript 性能测试系列:循环反转的效果
循环反转示例:
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 ...
by jindw 2007-05-31 浏览 (2261) 回复 (1)
javascript 性能测试系列:正则表达式
在JSI的实现中,有这样一种需求,将有自带命名空间的脚本元素名数组转换成没有命名空间的变量名数组.
比如 :
['YAHOO.util.XXXX,YAHOO.util.YYYY,YAHOO.event.XX'] ->['YAHOO']
以前一直是较长的一段处理代码,今天突发奇想,这个用正则表达式处理效果如何?
于是,就这种处理,分别测试了正则表达式和javascript代码的 ...
by jindw 2007-05-30 浏览 (3338) 回复 (4)
javascript 性能测试系列:函数调用
一直都认为,javascript的函数调用是一个相对耗时的操作。
开始JSI的优化,这些问题现在必须认真考虑了,测试一把:
一个简单的++操作,直接操作和函数内操作(注,函数参数对原始类型是值传递,所以这不会影响被传入的变量,这里测试里面,两类操作的行为是不一样的)
FF2测试结果(callTime/opTime):
2871/2582
2919/2675
2734/2704
...
by jindw 2007-05-29 浏览 (2332) 回复 (0)
javascript 性能测试系列:for in 循环效率的疑惑
前几天无意中看到一个网友blog上关于这个循环效率的问题,说要尽量避免使用。
有点害怕,我在JSI中可是用了不少,呵呵。
测试一下,负担终于可以放下来了:
测试对象:
一个对象模拟map,测试for in 循环
两个数组,测试for(;;)循环
连续4次运行时间比。
957/1278;955/1357;1014/1282;968/1392
明显,要实现类似map的功 ...
by jindw 2007-05-27 浏览 (3138) 回复 (1)
决定对JSI的依赖管理部分做一些简化
以前JSI的依赖管理设置时,依赖元素可以用* 、含有*的匹配模式、数组和单个元素。
感觉这样处理难度增加了很多,决定吧匹配模式去掉,只支持 *、数组和单个元素
含有*的匹配模式可以用精确的数组代替。
原来的做法太复杂了,改简单一点,提高效率,便于优化。
by jindw 2007-05-21 浏览 (2285) 回复 (0)
关于JSI日志输出的想法
JSI 日志是JSI内核中唯一的一个具体功能。
在2.0preview 中,默认是输出倒错误控制台的。
实现方式
setTimeout(function(){
throw new Error(错误信息)
},0)
但是这样貌似有个异步代码错误插入的问题(当有程序异步调用时,setTimeout抛出的错误可能会导致异步代码中抛出异常,就像错误发生在异步代码中一样)。
所以这 ...
by jindw 2007-05-18 浏览 (2271) 回复 (0)
关于半透明遮罩的优化(关机效果)
最近在搞JSI 的重构,少来冒泡了。
发一个中午的刚用到的小技巧:
在关机效果实现上,现在一般根据浏览器特征分别使用 虑镜/样式/图片 去模拟。
其中Opera是不支持网页透明的,只能用png的alpha透明模拟。
所以,我们需要一张特别的小图片。一个象素,alpha透明。
但是这个单象素图片的出现,感觉有点怪怪的,而且当网速很慢的时候,装载这个小图片还会延迟,效果不好。
...
by jindw 2007-05-18 浏览 (4706) 回复 (4)
发布了一段时间JSI2预览版了,下一步准备JSI2Alpha版开发。
发布了一段时间JSI2预览版了,下一步准备JSI2Alpha版开发。
主要任务有:
1、优化依赖管理模块。
2、完善日志输出功能。
3、清理现有bug。
预计需要3周左右时间。
按需装载的优化、JSDoc的完善、将推后。
示例装饰器将暂时停止更新。
http://www.xidea.org/project/jsi/index.html
by jindw 2007-05-13 浏览 (3289) 回复 (0)
云想衣裳花想容--JSI组件模型介绍(一)
JSI组件模型是一种用来装饰简单html元素的框架,使用简单的xml标记,标识其装饰行为,比如将一个普通的input装饰成一个日期输入控件,将一 个html ul标记装饰成菜单或树,将一个textarea装饰成一个代码语法高亮显示区域,或一个wysiwyg html编辑器。
JSI启动后将自动检查decorator标记,构建层次结构,自动做相关类的寻找、导入和装饰操作;实现零脚本代码的web富客 ...
by jindw 2007-04-16 浏览 (9330) 回复 (19)
海纳百川 有容乃大――采用JSI封装、集成第三方类库
Java的成功,离不开它那个庞大的类库,不单是sun的类库,很多细节的实现都取自第三方(如xml解析采用Apache的实现)。
如前言所述,我们暂时不大算编写丰富的公共API,但是我们可以集成其他成熟的类库,同时隔离他们的依赖,隔离各个脚本的执行上下文,消除命名冲突的危险。
这里我们详细介绍一个复杂一点的实例:类似Windows XP文件浏览器左侧的滑动折叠面板(任务菜单)效果。
...
by jindw 2007-04-15 浏览 (4089) 回复 (0)
百花齐放 日月同辉――采用JSI解决不同类库间的冲突
众所周知, Scriptaculous所依赖的Prototype库与jQuery存在冲突。所以同时使用比较困难。
JSI针对每一个装载的脚本都有完全独立的执行上下文。所以这个问题能在JSI上彻底解决。
下面的例子,我们将在同一个页面上同时使用Scriptaculous和 jQuery 类库。证实一下JSI隔离冲突功能。
示例页面(hello-jquery-aculo.html):
xm ...
by jindw 2007-04-15 浏览 (3857) 回复 (0)
脚本安需导入(装载)的三种模式的对比
何谓安需装载?
脚本程序一般都是下载后执行 ,当脚本库非常庞大时,一次性下载起来非常费时,传统的解决方式是,按功能模块把脚本写在不同的文件中,页面上手动加入script标签装载指定内容,但 是这有一些缺点,类库的使用者需要知道没个脚本之间的关系,顺序要求等等,而不可能要求每个类库使用者都对其非常熟悉,出错的可能性很大。于是很多框架开 始支持导入指令,想使用什么一个导入函数就完了,不 ...
by jindw 2007-03-30 浏览 (8225) 回复 (17)

