![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JSI
jindw
http://www.xidea.org
展开
-
脚本安需导入(装载)的三种模式的对比
何谓安需装载? 脚本程序一般都是下载后执行 ,当脚本库非常庞大时,一次性下载起来非常费时,传统的解决方式是,按功能模块把脚本写在不同的文件中,页面上手动加入script标签装载指定内容,但 是这有一些缺点,类库的使用者需要知道没个脚本之间的关系,顺序要求等等,而不可能要求每个类库使用者都对其非常熟悉,出错的可能性很大。于是很多框架开 始支持导入指令,想使用什么一个导入函数就完了,不必...2007-03-30 16:54:01 · 91 阅读 · 0 评论 -
JSI的延迟装载和异步装载过程的一些原理解释
出自该贴的回复:http://www.iteye.com/topic/161609JSI的延迟装载和异步装载过程非常相似.他们的实现是这样的:1.计算出全部未装载的依赖,并将依赖加入缓存.2.执行同步装载.其实所有的三种装载方式,原理都是一样的,只不过非同步装载在真正装载前有个预处理.而异步装载和延迟装载的区别也就在于预处理过程中如何缓存脚本.异步装载就...2008-02-14 17:13:12 · 189 阅读 · 0 评论 -
脚本全局变量探测程序
为了支持[url=http://www.xidea.org/project/jsi/]JSI[/url]包定义中的模式匹配(方便某些懒人)。我需要一个查找脚本全局变量的脚本。一直没有勇气编写JS的完整语法解析程序,所以,只能走一些旁门左道。 [code="javascript"]/* * JavaScript Integration Framework * License ...2008-08-28 23:20:05 · 114 阅读 · 0 评论 -
给大家展示一下JSI文档工具和导出工具
演示地址(目前只支持Firefox): http://www.xidea.org/project/jsidoc/ 基本功能API查阅: 该程序可以通过脚本源代码及注释,自动适时生成对应的JavaScript API文档。源码浏览: 你可以通过API文档内连接,进入相关实现代码。脚本导出: 导出工具可以更据JSI的包文件,以正确的顺序,自动导出选中的脚本元素及其依赖。 ...2008-02-21 11:43:54 · 136 阅读 · 0 评论 -
韬光养晦 厚积薄发
最近被反复问道,JSI还在继续吗?开始感觉很诧异,后来想想也是,JSI基本只是我一个人的玩具,最近也没发出什么声音,有如此疑问倒也正常。其实,你看看JSI的svn记录就知道了,基本每周都有若干次改进提交。以前我确实很担心某一天,他会死去,但是现在我不担心了。任何一个东西必须有价值了才能长久,在JSI初期,回报与投入差距甚远。坚持下去需要的只是个人兴趣和毅力。但是...2008-10-22 21:34:47 · 271 阅读 · 0 评论 -
JSI Side 代码风格与规范
准备编写JSI的外围元素,先整理一下编码风格和一些约定,欢迎大家讨论。基本风格 * 基本参照Java代码风格。 1. 驼峰式命名(单词无连接字符,单词首字母大写,其余小写); 2. 类的首字母大写(eg:MyClass); 3. 变量名,方法名,成员名首字母小写(eg:name,value,targetObject); ...2008-04-29 22:07:09 · 120 阅读 · 0 评论 -
发布一个JSI Example Project
部署到Tomcat中,打开script目录,可以显示你当前script目录下全部托管脚本的API试图。[b]导出功能介绍:[/b][list=1][*]导出成jsidoc文档 (单个文件)[*]合并脚本(可以选择不同的隔离级别)[/list]...2008-04-30 14:58:57 · 106 阅读 · 0 评论 -
JSA压缩Prototype1.6时,经常表现的一个错误
开始发帖错误,我的测试不够严谨。经过测试,IE也没有踩到那个地雷,只是我测试的时候刚好发生了另外一个错误。那就是直接出现了“”字符串。这个问题导致压缩结果不能直接粘贴到html中(一般的做法,放到js中是没有问题的)。不过这也确实是个问题,这辆个问题都是问题,前者已经解决了,后者我也将在下次发布之前解决。原帖:[quote]错误原因:[url]http:...2008-05-07 21:15:26 · 79 阅读 · 0 评论 -
把JSA部署在GoogleAppEngine上,迎接我的是一张笑脸^_^
第一个无意的测试,结果打印出了一张笑脸^_^只是随便输的.真不是刻意为之:[url]http://litecompiler.appspot.com/compressor.xhtml[/url][code="java"]function test(aaa,bbb){return aaa+bbb+1;}[/code]压缩结果是([b][color=vio...2009-05-03 02:47:23 · 117 阅读 · 0 评论 -
端午在家搞了一个基于JSI的脚本发布系统
项目上线之前,脚本都要手动重新组合压缩。挺麻烦的,JSICDN目标就是把这些事情自动化。吧脚本库上传到发布系统中,用户通过特定格式URL自动提取。自动导出压缩隔离冲突。如果您需要调试脚本,那好,进入管理页面,开启调试标记(设置一个 Cookie)。系统就自动帮你输出未压缩脚本。你去断点跟踪吧,一切都是自动化的。[url]http://jsicdn.appsp...2009-05-31 13:06:32 · 102 阅读 · 0 评论 -
用两句话来解释JSI是怎么隔离JavaScript变量冲突的
“我还是一直没有明白jsi是怎么隔离名字空间的”好,大家的时间都是宝贵的,长话短说,我就用两句话来解释一下吧。1. 通过混淆导出隔离。 和java重构的原理一样,不同的包下变量对应的是不同的id,混淆的时候自动隔离了。2. 调试期间(或者带上JSI框架的运行时)的隔离 通过闭包,每个脚本有独立的装载单元,之间通过钩子函数注入依赖。没明白?别灰心,...2009-06-01 17:08:53 · 245 阅读 · 0 评论 -
CGI还是个不错的玩意
[url=http://jsi.googlecode.com]JSI[/url]的调试辅助程序目前提供有JavaServlet版本和php版本,真要用好JSI,你可能要安装JavaServelt环境或者PHP环境,不太方便。能不能用简单的CGI程序处理这类事情呢?windows平台上默认有jscript和vbscript支持。但是,他不兼容 #!语法,就这个问题,好折腾:h...2009-06-20 18:52:53 · 115 阅读 · 0 评论 -
水月镜花
刚才cctv4在播放着《激情燃烧的岁月》。一些情节开始看着很有趣,事后感觉又是那么心酸。安静下来,回想一下去年的经历,心酸,迷茫,都涌上心头。水月镜花山高流水匆匆过月小浮萍碌碌行明镜有意留黑发清风无事笑红尘 ...2009-02-07 21:11:26 · 67 阅读 · 0 评论 -
JSA 发布一个新的预览版本
主要功能是:[b]1。带上了原来的经典UI界面。[/b] 增加了一个项目目录树浏览功能[b]2。本地调试服务器。[/b] 本来计划做通过代理服务器做一些和浏览器集成的自动格式化功能的。时间太紧,没搞完。[b]3。右侧停泊窗口。[/b] 提供一个快速的操作端点。用户可以吧js文件拖放到这个半透明窗口上,系统自动打开传统界面,并打开文件。[b]4。任务栏...2009-07-27 01:15:21 · 175 阅读 · 0 评论 -
JSIDoc设计的两个失败点
JSIDoc是我一年前开发的用来解析JS文档的纯客户端脚本程序。现在随着JSI2的重构,已经好久没有跟进了,今天回头看看。很多设计实在是失误,记录一下:SourceEntry作为ECMAParser的子类:非常失败,导致SourceEntry非常复杂,回头一看,头大!如果使用组合,这种局面就不会发生。总结:不要滥用继承。特别是JavaScript这种弱类型语言,成员多了,鬼知道...2008-02-08 00:11:06 · 73 阅读 · 0 评论 -
JSI的导入指令参数顺序调整意见征询
改动 2.0方式:$import(path,callbackOrLazyLoad,target)调整成(将target参数提前)/** * @param <string> path (package:Object|package.Object|package.*| scriptPath) * @param < Object> target可选参数,指定导入容器。...2008-02-07 17:20:18 · 89 阅读 · 0 评论 -
JSI2.1计划
先回顾历史:JSI1(2006-2007)是个简单的框架,只有脚本级别的依赖管理,只有阻塞同步装载模式。JSI2 (2007-2008)是个庞然大物,同步装载,异步装载,延迟装载,装饰引擎。。。。。网撒的太宽,而且学习曲线也非常陡峭。JSI2.1 新的2008,JSI2也打算做点改进。时至今日, JSI已经有两年多的历史了,自己也在大大小小的项目中有了不少实践,普遍的反映是。内核庞大...2008-01-01 21:13:59 · 189 阅读 · 0 评论 -
百花齐放 日月同辉――采用JSI解决不同类库间的冲突
众所周知, Scriptaculous所依赖的Prototype库与jQuery存在冲突。所以同时使用比较困难。JSI针对每一个装载的脚本都有完全独立的执行上下文。所以这个问题能在JSI上彻底解决。下面的例子,我们将在同一个页面上同时使用Scriptaculous和 jQuery 类库。证实一下JSI隔离冲突功能。示例页面(hello-jquery-aculo.html):xml 代码...2007-04-15 17:09:46 · 108 阅读 · 0 评论 -
海纳百川 有容乃大――采用JSI封装、集成第三方类库
Java的成功,离不开它那个庞大的类库,不单是sun的类库,很多细节的实现都取自第三方(如xml解析采用Apache的实现)。如前言所述,我们暂时不大算编写丰富的公共API,但是我们可以集成其他成熟的类库,同时隔离他们的依赖,隔离各个脚本的执行上下文,消除命名冲突的危险。这里我们详细介绍一个复杂一点的实例:类似Windows XP文件浏览器左侧的滑动折叠面板(任务菜单)效果。我们先集成...2007-04-15 17:21:16 · 198 阅读 · 0 评论 -
云想衣裳花想容--JSI组件模型介绍(一)
JSI组件模型是一种用来装饰简单html元素的框架,使用简单的xml标记,标识其装饰行为,比如将一个普通的input装饰成一个日期输入控件,将一 个html ul标记装饰成菜单或树,将一个textarea装饰成一个代码语法高亮显示区域,或一个wysiwyg html编辑器。JSI启动后将自动检查decorator标记,构建层次结构,自动做相关类的寻找、导入和装饰操作;实现零脚本代码的web富客户...2007-04-16 07:54:38 · 89 阅读 · 0 评论 -
云想衣裳花想容--JSI组件模型介绍(二)
装饰引擎简介:系统默认的装饰引擎为:org.xidea.decorator.DecoratorEngine。JSI装载后,将做如下操作: 判断有无装饰器命名空间声明(xmlns:d= "http://www.xidea.org/taglib/decorator") 若有,将在文档装载结束后,启动装饰引擎,初始化当前可用的装饰提供者表。(装饰提供者是一个JavaScript包,...2007-04-16 08:57:23 · 125 阅读 · 0 评论 -
JSI API之BrowserInfo、EventUtil讨论
[quote]JSI 自身提供一些常用API,数量极少,尽量以一种正式的风格提供,尽量回避争议。有些是启动文件用到的,如任务队列支持,还有如装饰引擎直接用到的,如BrowserInfo、EventUtil、StyleUtil等。对于启动文件中未直接用到的,如果风格的争议太大,都将剔除出去。[/quote][size=18][b]BrowserInfo对象:[/b][/size]...2007-06-06 11:07:02 · 215 阅读 · 0 评论 -
JSI2Alpha及JSA1beta 发布:
JSI2Alpha及JSA1beta 发布:[quote]JSI简介:JSI 是一个 开放的、无侵入的 脚本库管理框架,内核不提供任何具体功能,有一些功能子项目,如网页装饰引擎。JSI2性能测试报告:[url]http://jindw.iteye.com/blog/93118[/url]更多信息请查看:[url]http://www.xidea.org/proj...2007-06-22 12:15:51 · 137 阅读 · 0 评论 -
JSI2性能测试报告
[b]装载效率测试[/b]测试页面见:test/load-eff-test.html为了测试结果更显客观,我选择了第三方类库的装载测试:'com.yahoo.yui.*','net.conio.prototype.*','net.fckeditor.*','org.jquery.*','us.aculo.script.*'共22个脚本文件(对于JSI来说还有诺干...2007-06-22 12:49:33 · 111 阅读 · 0 评论 -
JSI2 新功能预告:类库导出支持、Ext集成
[b]* 类库导出支持(完全脱离JSI环境)[/b] 从JSI托管类库中,选择文件/对象集,导出为单一脚本文件,完全脱离JSI装载环境。 也就是说,届时JSI不仅可以作为一个运行时的脚本管理框架,也可以当作一个部署时的脚本定制、打包工具。 我是看Ext的定制工具后产生这个想法的,JSI的依赖定义API完全可以用作一个通用的脚本定制、打包工具的依赖描述语言。[b]* E...2007-07-12 12:25:26 · 99 阅读 · 0 评论 -
使用中间数据格式优化前端模板性能的想法
前端时间这里出现了不少讨论前端模板的帖子。我还是原来的观点,前端要做模版,最好不要带上解析开销。一旦带上了解析开销,那么为了性能,我们必然会考虑很多很多,很多事情不敢做不能做。这可能造成很多事情不能去处理。模版的易用性也会大打折扣。而且一旦你在前端运用了模版,说明你的前端运用已经达到一定的复杂度,如此一来,机器辅助的代码优化,就应该排上日程。这一个过程中,如果我们能吧模...2008-06-12 21:24:31 · 75 阅读 · 0 评论 -
JSI 类库文件格式探讨
在JSI中打包脚本类库。目前只有jar方式,同时支持java和php。我还想支持一种文本的格式,这样还可以方便的做适当修改。其实jar也好,zip也好,都是一个键值对系列的存储方式,这种格式从逻辑结构上讲,与java的Properties文件类似。Properties文件在jdk5之后支持xml方式,这对于中文来说,是一个很好的消息。我想,我与其自己定义一个js...2008-08-05 20:08:03 · 203 阅读 · 0 评论 -
JSA2 邀请公测(新增全局变量混淆、API调用接口)
昨晚忙到三点半,加上今天一天,我重构了一下JSA以前的代码。增加了对全局变量混淆的设置,公开了部分API调用接口。方便于二次开发现在邀请大家测试测试。国庆前说了要完成的事情,拖到现在^_^补充:20071022凌晨改进版发布完善了操作语言切换,并且在非安全区域外混淆提供了更友好的用户界面。...2007-10-21 17:11:43 · 163 阅读 · 0 评论 -
脚本合并时混淆隔离的三个级别
[b]直接合并--传统方式[/b]根据脚本依赖关系,组织好导入顺序,简单的合并成单个大文件。这是最常见简单功能的一种合并方式。通常也不需要任何工具的支持。由程序员手动完成。[b]优点[/b]:简单[b]缺点[/b]:需要程序员自己管理脚本名称冲突。[b]间接依赖全局变量的隔离--JSI运行时等价的隔离策略[/b]就是说,比如你在脚本包p1有一个脚本A 依赖脚本元素B...2007-12-23 13:38:07 · 120 阅读 · 0 评论 -
JSA 压缩JS时的常见问题
1。保留字滥用如果你的脚本中存在某些保留字或者关键字属性甚至变量名,那么,对不起,您的脚本无法通过解析。虽然大多数浏览器在这个时候会对你宽大处理,但是JSA不能,比如新浪编辑器里有一个float属性(其实那是错误写法,正确写法应该为styleFloat)2。严格的正则语法JSA使用的是Rhino语法解析器,在正则处理时,哪怕在[]号内,依然需要对全部特殊字符转义。否则可能会出错。比如,...2007-12-30 16:08:32 · 169 阅读 · 0 评论 -
关于JSI装饰引擎改进的一些想法
今天看到[url=http://bellstar.iteye.com]bellstar[/url]大侠发布的SUI,也看了一些设计及实现原理。觉得也应该吧自己以前的一些想法拉出来晒晒,交流一下,也希望对SUI的发展能有些参考价值,仅供参考而已。文章是一年前写的,而且这些想法也在我JSISide中得到实现。与SUI重装出击的风格不同的是我在JSISide中的实现是非常轻量级的。演示地址见...2009-02-16 18:29:09 · 93 阅读 · 0 评论