JSI 简介:
JSI新版本将择日发布
改动量比较大,且不与当前版本兼容!
JSI项目分两部分:框架内核、基于这个内核开发的系列功能子项目。
框架内核提供一个无侵入类库开发者可以在不修改自己源码的条件下,将类库纳入JSI体系的脚本库管理解决方案。
让类库编写者能够自己管理好自己编写的类库的相关依赖,提高类库的易用性,
让最终用户从繁琐的依赖管理中解脱出来;隔离各个模块的执行上下文,方便于重用、组织第三方脚本库,避免它们带来的命名污染问题。
同时尽量做到简单,不加入特殊语法,被管理的脚本无框架依赖。
JSI的功能子项目,可以提供某方面的具体实用功能。如网页装饰框架,模板引擎。
作为一个开放的脚本管理框架,JSI不打算提供庞大的功能API,而是让最终用户根据自己喜好整合其他类库,
我们也提供一些常用脚本类库的整合实例(如:jQuery、Prototype、Scriptaculous、FCKEditor 、YAHOO
UI...)。
内核功能:
- 按需装载
通过$import函数按需装载页面上直接引用的脚本元素,系统自动计算相关依赖,组织装载行为,省去一堆不便管理的script标签。
除常见的阻塞式装载方式,JSI还提供了无阻塞的按需装载方式(延迟同步装载,异步装载,JSI2.0+)
- 管理依赖,避免其保露、扩散,提高类库的易用性
脚本依赖的暴露、扩散是复杂度陡增的最大祸根。
JSI提供了完善的依赖管理方案,将依赖终结在类库开发者手中。提高类库的易用性
- 隔离脚本执行环境
传统方式使用类库,将其直接导入进来,在全局上下文执行,这带来一个名称冲突的隐患,随着脚本特别是第三方脚本的增加,这个危险将愈加明显;
JSI中,每个脚本都有单独的执行上下文,不必担心不同脚本的命名冲突。
功能子项目:
- 网页装饰框架(JSI的默认页面组件模型)
JSI组件模型是一种用来装饰简单html元素的框架,使用简单的xml标记,标识其装饰行为,比如将一个普通的input装饰成一个日期输入控件,将一个html
ul标记装饰成菜单或树,将一个textarea装饰成一个代码语法高亮显示区域,或一个wysiwyg html编辑器。
JSI启动后将自动检查decorator标记,构建层次结构,自动做相关类的寻找、导入和装饰操作;实现零脚本代码的web富客户端编程。
- 自解析API文档(读取脚本源代码实时解析)
通过对项目脚本的实时解析,生成API文档;
简单方便,保持文档与代码的同步。
- XML模板引擎JS版
一个简洁高效的模板引擎。
JSDoc 及一些示例装饰器都基于此。
兼容浏览器(内核):
所有的产品都可在Mozilla,IE新版本上运行:
其中框架内核的兼容性最高,连IE5这样的老古董也包括在内。
装饰引擎的兼容性低一些,在opera8,Konqueror上有一些问题(因其对自定义标签支持有限或不支持动态css导入),但还是可以通过一些小技巧解决。
示例装饰器的兼容性各不相同。
JSDoc工具的兼容性最低,只保证新版本浏览器可行(IE5.5+、FF)。
支持JSI:
- 帮助宣传、推广 好酒也怕巷子深。
为了JSI开源项目的发展,可以在自己的blog,网站上提供JSI项目的链接;
协助JSI的推广。
- 组织开发第三方装饰器集
一个优秀的组件集合,对于JSI的发展将非常有利;
您可以和我们一道,丰富JSI自带的装饰器集合;
也可以开发自己的第三方装饰器;
详情可见我们的邀请信。
- bug报告提交改进
有何bug报告或改进建议,可以直提交到我们的缺陷跟踪系统;也可以直接邮件和与我联系。
- 直接参与JSI开发 如果你有兴趣参与JSI的开发,请直接邮件与我联系。
About us:Email: jindw◎xidea.org , jinyun.jin◎gmail.com
QQ Group: 23180506