- 浏览: 508440 次
- 性别:
- 来自: 初到北京
最新评论
-
javamonkey:
有点老了,有个Teb测试,这个性能测试很标准http://gi ...
几款模板引擎的性能对比 -
greenlaw110:
xuyao 写道sdh5724 写道xuyao 写道很好,nn ...
几款模板引擎的性能对比 -
sefier:
不知道你看的是哪个版本的,现在所看到的版本和你所描述的不一致, ...
Facebook XHP 调研 -
javatar:
我觉得从通用语言去思考可能更有意思,满足八封其实就是一个完备集 ...
五行通天地 八卦定乾坤--打算按照先天八卦的形制重构Lite模版引擎的指令集 -
luo2pei4321:
MVEL的官方例子里面好像只支持Integer和String两 ...
表达式引擎JSEL介绍
改动
2.0方式:
$import(path,callbackOrLazyLoad,target)
调整成(将target参数提前)/**
* @param <string> path (package:Object|package.Object|package.*| scriptPath)
* @param < Object> target 可选参数,指定导入容器。
* 当该参数为有效对象时(instanceof Object && not instanceof Function),导入的元素将赋值成其属性;
* 当该参数未指定时 (arguments.length==1), target为全局变量容器,这种情况等价于直接声明的全局变量。
* @param <boolean|Function> col callbackOrLazyLoad 可选参数,默认为null。
* 如果其值为函数,表示异步导入模式;
* 如果其值为真,表示延迟同步导入模式,否则为即时同步导入(默认如此)。
*/
$import(path,target,col)
理由:
延迟装载和异步装载并不常用。
而target紧跟path似乎更合逻辑。
不妥之处:
对于target的处理:
以前的办法:当制定null时,是不会将导入的对象拉出来的,只有没有指定target的时候,才会使用global(window)对象(arguments.length<=2)。
而现在,一但指定了callbackOrLazyLoad,target就必须指定了,这个时候,如何去处理还没想好。
JSI开发现状:
http://xidea.cvs.sourceforge.net/xidea/JSI2/web/source/boot-core.js?view=markup
目前主要的发展方向是开发环境支持、简化内核。
一切向易用、简单、性能方向考虑;避免过渡设计。
2.0版,启动文件压缩后近30k
2.1彻底清理了一些不常用的功能,同时,将一些非必要的功能,作为可选项。
最小版本压缩后不到5k(未启用文本压缩)。
- jsi.rar (17.9 KB)
- 下载次数: 54
评论
34 楼
hax
2008-02-16
jindw 写道
JSVM确实不错,国内算做的最早最大的了,我也比较喜欢他.
不过,我也认为这个东西过于复杂,增加了学习成本.
使用正则将类java语法翻译成真正脚本,这个过程也时非常复杂的,性能可靠性上都有点担心,研究还不够深入,也许是多余的担心吧,呵呵.
不过,我也认为这个东西过于复杂,增加了学习成本.
使用正则将类java语法翻译成真正脚本,这个过程也时非常复杂的,性能可靠性上都有点担心,研究还不够深入,也许是多余的担心吧,呵呵.
有机会的话开个座谈会,找老万来给我们剖析一下jsvm2的设计。然后你也可以给我们剖析一下jsi2的设计。
33 楼
jindw
2008-02-16
JSVM确实不错,国内算做的最早最大的了,我也比较喜欢他.
不过,我也认为这个东西过于复杂,增加了学习成本.
使用正则将类java语法翻译成真正脚本,这个过程也时非常复杂的,性能可靠性上都有点担心,研究还不够深入,也许是多余的担心吧,呵呵.
不过,我也认为这个东西过于复杂,增加了学习成本.
使用正则将类java语法翻译成真正脚本,这个过程也时非常复杂的,性能可靠性上都有点担心,研究还不够深入,也许是多余的担心吧,呵呵.
32 楼
kebo
2008-02-16
jindw 写道
呵呵,用惯了eclipse的重构支持,再编辑js文件,很多东西总是那么不方便,所有就想自己写写.
另外一个因素:我发现JSI的某些特性,对于IDE支持非常有利,而这些是其他通用脚本开发环境无法提供的,所有决定自己写写.
这种东西市场我也不看好,脚本基本都是用来做一些网站边边脚脚性的东西.代码量都非常少.
需要用JSI这样的脚本管理环境的情况还是非常少的,用户不多,自然就没有市场.
另外一个因素:我发现JSI的某些特性,对于IDE支持非常有利,而这些是其他通用脚本开发环境无法提供的,所有决定自己写写.
这种东西市场我也不看好,脚本基本都是用来做一些网站边边脚脚性的东西.代码量都非常少.
需要用JSI这样的脚本管理环境的情况还是非常少的,用户不多,自然就没有市场.
我们项目中60%代码是js。相反java代码倒是很少,有些控制直接就用js来做了,后台基本就是数据处理这块.迫切需要脚本管理环境。当时看了jsi和jsvm,最后选择了jsvm,呵呵。个人感觉支持环境不太需要ide工具。
31 楼
jindw
2008-02-15
呵呵,用惯了eclipse的重构支持,再编辑js文件,很多东西总是那么不方便,所有就想自己写写.
另外一个因素:我发现JSI的某些特性,对于IDE支持非常有利,而这些是其他通用脚本开发环境无法提供的,所有决定自己写写.
这种东西市场我也不看好,脚本基本都是用来做一些网站边边脚脚性的东西.代码量都非常少.
需要用JSI这样的脚本管理环境的情况还是非常少的,用户不多,自然就没有市场.
另外一个因素:我发现JSI的某些特性,对于IDE支持非常有利,而这些是其他通用脚本开发环境无法提供的,所有决定自己写写.
这种东西市场我也不看好,脚本基本都是用来做一些网站边边脚脚性的东西.代码量都非常少.
需要用JSI这样的脚本管理环境的情况还是非常少的,用户不多,自然就没有市场.
30 楼
zhourenjian
2008-02-15
jindw 写道
恩,确实,如果现在抽时间去集成extjs对于JSI的推广非常有利。
但是,可能是出于个人自私的一面吧。
一来,集成extjs对我个人技术来说,没有什么帮助。而且,我不懂ext,工作上也用不上这个,就算我集成了,我野没有时间去维护跟踪,这也是不负责的做法。
二来,我还是去发挥自己的长处。把IDE做好。虽然也如你所说,已经有人去做,但是没有人去做针对JSI的IDE。而JSI对于IDE来说,可以提供更好的语法提示,重构支持,就从这点,我可以做到比通用脚本编辑器功能更强大。我想,也是非常值得我一做的。
但是,可能是出于个人自私的一面吧。
一来,集成extjs对我个人技术来说,没有什么帮助。而且,我不懂ext,工作上也用不上这个,就算我集成了,我野没有时间去维护跟踪,这也是不负责的做法。
二来,我还是去发挥自己的长处。把IDE做好。虽然也如你所说,已经有人去做,但是没有人去做针对JSI的IDE。而JSI对于IDE来说,可以提供更好的语法提示,重构支持,就从这点,我可以做到比通用脚本编辑器功能更强大。我想,也是非常值得我一做的。
你要搞JSI的IDE?
我个人觉得没必要,没什么理由。:D
29 楼
jindw
2008-02-15
其实也不叫依赖服务器端了.
是这样,发布的时候,我可以一次将全部脚本处理好,作为静态文件放置在服务段.
但是调试期间,为了方便,我就直接通过代理,即时处理这些脚本了.
另外,异步装载和同步装载需要的资源完全相同.
不需要对脚本做闭包处理.
是这样,发布的时候,我可以一次将全部脚本处理好,作为静态文件放置在服务段.
但是调试期间,为了方便,我就直接通过代理,即时处理这些脚本了.
另外,异步装载和同步装载需要的资源完全相同.
不需要对脚本做闭包处理.
28 楼
hax
2008-02-14
果然是要依赖服务器端啊。而且从你说的来看,好像无论是script标签延迟加载,还是异步加载,都是要配合服务器端的?
27 楼
jindw
2008-02-14
JSI的延迟装载和异步装载过程非常相似.
他们的实现是这样的:
1.计算出全部未装载的依赖,并将依赖加入缓存.
2.执行同步装载.
其实所有的三种装载方式,原理都是一样的,只不过非同步装载在真正装载前有个预处理.
而异步装载和延迟装载的区别也就在于预处理过程中如何缓存脚本.
异步装载就是直接xhr异步读取js文件,加入JSI的脚本缓存.
而延迟模式就略显麻烦了,如hax所言,他是通过打印一段引用脚本,脚本文件的内容就是用闭包封起来的源代码.
而这段脚本的生成,我们可以在脚本打包时自动生成.
如果在调试期间,我们不希望每次修改都去运行任务,我们可以用一个jsp代理或者一个servlet过滤器去做相关的文本处理,同时还可以确保转换后的脚本与源文件行数完全对应,这就是JSI对于调试友好实现的基本原理.
其中:eval(this.varText)这句时jsi里面比较关键的一点,他除了申明依赖之外,还构造了一个钩子函数.
能后外界就可以控制装载单元的内容了.如:注入装载后依赖.
他们的实现是这样的:
1.计算出全部未装载的依赖,并将依赖加入缓存.
2.执行同步装载.
其实所有的三种装载方式,原理都是一样的,只不过非同步装载在真正装载前有个预处理.
而异步装载和延迟装载的区别也就在于预处理过程中如何缓存脚本.
异步装载就是直接xhr异步读取js文件,加入JSI的脚本缓存.
而延迟模式就略显麻烦了,如hax所言,他是通过打印一段引用脚本,脚本文件的内容就是用闭包封起来的源代码.
$JSI.addCacheScript("mypkg","hello.js",function(){eval(this.varText)/** * helllo world 函数 */ function hello(){ alert("hello world") } })
而这段脚本的生成,我们可以在脚本打包时自动生成.
如果在调试期间,我们不希望每次修改都去运行任务,我们可以用一个jsp代理或者一个servlet过滤器去做相关的文本处理,同时还可以确保转换后的脚本与源文件行数完全对应,这就是JSI对于调试友好实现的基本原理.
其中:eval(this.varText)这句时jsi里面比较关键的一点,他除了申明依赖之外,还构造了一个钩子函数.
能后外界就可以控制装载单元的内容了.如:注入装载后依赖.
26 楼
hax
2008-02-14
jindw 写道
是的,若要良好的调试支持,就不能eval了.
可以用延迟装载的方式,和同步装载的区别是,导入指令和其他脚本必须写在不同的script标签里(延迟装载就是说,$import的对象需要在下一个script标签中才能生效),这样,没有异步回调那么麻烦,也不必忍受eval带来的调试困难.
算是鱼与熊掌各取一半吧.
还有,延迟装载,就要求该脚本文件要把自己的变量包在一个闭包中避免泄漏到global上去。这个包裹过程在有eval的情况下可以自动加上,在异步load的情况下已然被封到了onload函数里。但是对于延迟装载就必须手动加了吧(当然可以配合服务器端程序变成自动的)。
25 楼
hax
2008-02-14
jindw 写道
是的,若要良好的调试支持,就不能eval了.
可以用延迟装载的方式,和同步装载的区别是,导入指令和其他脚本必须写在不同的script标签里(延迟装载就是说,$import的对象需要在下一个script标签中才能生效),这样,没有异步回调那么麻烦,也不必忍受eval带来的调试困难.
算是鱼与熊掌各取一半吧.
还是采用前面的假设,用户用到jsilib1和jsilib2,jsilib1依赖prototype,jsilib2依赖jquery。现在的问题倒不是用户如何import jsilib1和jsilib2,而是jsilib1、jsilib2如何import prototype和jquery。
延迟装载貌似只能针对最后的client code(即在页面中的代码),如果我延迟载入了jsilib1,那prototype到底是怎么载入的呢?是否取决于jsilib1的import语句?
还有,如果要发布一个基于jsi的类库,那么该类库在导入其他类库的时候,到底应该采用哪一种方式呢?难不成,每种方式都备一份?
24 楼
jindw
2008-02-14
hax 写道
jindw 写道
仍外,关于调试器依赖的问题,我还是不能认同hax的观点.
靠日志解决不是好办法.对于前端脚本来说,日志其实是加入在代码中的垃圾.
到时候还是要清理(JSA新版本中加入了调试信息清理功能).而且添加删除日志也远没有设置断点来的轻松.
而模块做到很小,也不一定是好事.
如果,项目一开始,我们就做好正式发布时导出成单一脚本,完全脱离装载器的打算,那么这样做很好.
但是,如果我们想在运行时采用jsi/pies之类的系统,那么模块太小对性能来说也是一个小小的考验.
靠日志解决不是好办法.对于前端脚本来说,日志其实是加入在代码中的垃圾.
到时候还是要清理(JSA新版本中加入了调试信息清理功能).而且添加删除日志也远没有设置断点来的轻松.
而模块做到很小,也不一定是好事.
如果,项目一开始,我们就做好正式发布时导出成单一脚本,完全脱离装载器的打算,那么这样做很好.
但是,如果我们想在运行时采用jsi/pies之类的系统,那么模块太小对性能来说也是一个小小的考验.
设断点,script单元就必须是基于文件的,而不能eval了。这样你好像只能使用异步加载(即带有函数参数的$import来控制导入的名称了)。鱼与熊掌可以兼得否?
编程模块小我觉得总是好事情。可以在正式发布时通过某种打包方式(除了导出单一脚本,也可以用其它方式,譬如我看到jsi的源代码最后有cachedScripts参数,应该就是可以用来干这个事情的吧)解决性能问题。
是的,若要良好的调试支持,就不能eval了.
可以用延迟装载的方式,和同步装载的区别是,导入指令和其他脚本必须写在不同的script标签里(延迟装载就是说,$import的对象需要在下一个script标签中才能生效),这样,没有异步回调那么麻烦,也不必忍受eval带来的调试困难.
算是鱼与熊掌各取一半吧.
关于模块最小化,我们想法基本一致,我也期望编程模块细分,细分的时候充分考虑一下运行时脚本管理的开销就是.
我上面反对过渡细分,只是因为曾经碰到过变态的细分要求.条件反射,呵呵.
23 楼
hax
2008-02-13
jindw 写道
仍外,关于调试器依赖的问题,我还是不能认同hax的观点.
靠日志解决不是好办法.对于前端脚本来说,日志其实是加入在代码中的垃圾.
到时候还是要清理(JSA新版本中加入了调试信息清理功能).而且添加删除日志也远没有设置断点来的轻松.
而模块做到很小,也不一定是好事.
如果,项目一开始,我们就做好正式发布时导出成单一脚本,完全脱离装载器的打算,那么这样做很好.
但是,如果我们想在运行时采用jsi/pies之类的系统,那么模块太小对性能来说也是一个小小的考验.
靠日志解决不是好办法.对于前端脚本来说,日志其实是加入在代码中的垃圾.
到时候还是要清理(JSA新版本中加入了调试信息清理功能).而且添加删除日志也远没有设置断点来的轻松.
而模块做到很小,也不一定是好事.
如果,项目一开始,我们就做好正式发布时导出成单一脚本,完全脱离装载器的打算,那么这样做很好.
但是,如果我们想在运行时采用jsi/pies之类的系统,那么模块太小对性能来说也是一个小小的考验.
设断点,script单元就必须是基于文件的,而不能eval了。这样你好像只能使用异步加载(即带有函数参数的$import来控制导入的名称了)。鱼与熊掌可以兼得否?
编程模块小我觉得总是好事情。可以在正式发布时通过某种打包方式(除了导出单一脚本,也可以用其它方式,譬如我看到jsi的源代码最后有cachedScripts参数,应该就是可以用来干这个事情的吧)解决性能问题。
22 楼
hax
2008-02-13
jindw 写道
JSI中依赖的处理和导入的行为是不同的.
JSI每个装载单元都有独立的上下文,他们的依赖也不会相互影响,也不会受全局变量的影响.
所以,hax上述的担心是没有的(如果是我理解的错误,还请hax耐心指出,^_^).
JSI每个装载单元都有独立的上下文,他们的依赖也不会相互影响,也不会受全局变量的影响.
所以,hax上述的担心是没有的(如果是我理解的错误,还请hax耐心指出,^_^).
抱歉,偶过春节睡得太多睡糊涂了,这个是你原来就已经实现的特性,不过我看到你写的“当该参数未指定时,target为全局变量容器,等价于直接声明的全局变量”时,一时脑子岔了,以为你新版本的jsi为了异步导入和延迟导入的特性准备改成直接导入到global上了。
21 楼
jindw
2008-02-13
nihongye 写道
我觉得import指令应该只包含所依赖的类名,如import("x.y.z"),至于"x.y.z"这个类在那个文件,通过另一个文件来指定,最好有一个默认的映射规则。
独立控制每个文件使用什么形式加载。
另外不用eval,用document.write script标签的形式,因为知道类和文件的映射关系,便可以检测相应的类是否存在来判定文件是否已经加载下来。
独立控制每个文件使用什么形式加载。
另外不用eval,用document.write script标签的形式,因为知道类和文件的映射关系,便可以检测相应的类是否存在来判定文件是否已经加载下来。
嗯,确实,JSI计算好依赖直接document.write出来,是一个简单的办法.比JSI现有的延迟装载实现简单,也不需要脚本转换.
完全没有装载器的介入,可能也更容易让人接受.
我也可能在后续版本中加入这种功能.
有利必有失,这样一来,完全没有装载器去隔离冲突,JSI的功能也就大大则扣.
这种装载方式,可以在开发调试时使用,运行时合并成单个脚本更合算.
其实,这种方式就是一个简单的运行时脚本合并功能.
20 楼
jindw
2008-02-13
JSI中依赖的处理和导入的行为是不同的.
JSI每个装载单元都有独立的上下文,他们的依赖也不会相互影响,也不会受全局变量的影响.
所以,hax上述的担心是没有的(如果是我理解的错误,还请hax耐心指出,^_^).
例如,我在脚本C1中用到了jQuery,那么我申明
能后,我在页面上直接:
这里,两个$变量是不会相互影响的.
页面上调用的$是prototype的$,而c1.js里调用的$还是他的jQuery 的$.
关于prototype和jquery在JSI中共存的方式.
我以前专门写过一个例子:
http://jindw.iteye.com/admin/blogs/71280
仍外,关于调试器依赖的问题,我还是不能认同hax的观点.
靠日志解决不是好办法.对于前端脚本来说,日志其实是加入在代码中的垃圾.
到时候还是要清理(JSA新版本中加入了调试信息清理功能).而且添加删除日志也远没有设置断点来的轻松.
而模块做到很小,也不一定是好事.
如果,项目一开始,我们就做好正式发布时导出成单一脚本,完全脱离装载器的打算,那么这样做很好.
但是,如果我们想在运行时采用jsi/pies之类的系统,那么模块太小对性能来说也是一个小小的考验.
JSI每个装载单元都有独立的上下文,他们的依赖也不会相互影响,也不会受全局变量的影响.
所以,hax上述的担心是没有的(如果是我理解的错误,还请hax耐心指出,^_^).
例如,我在脚本C1中用到了jQuery,那么我申明
this.addScript("c1.js","C1", "org.jquery.$");
能后,我在页面上直接:
$import("org.prototype.$"); $import("example.C1");
这里,两个$变量是不会相互影响的.
页面上调用的$是prototype的$,而c1.js里调用的$还是他的jQuery 的$.
关于prototype和jquery在JSI中共存的方式.
我以前专门写过一个例子:
http://jindw.iteye.com/admin/blogs/71280
仍外,关于调试器依赖的问题,我还是不能认同hax的观点.
靠日志解决不是好办法.对于前端脚本来说,日志其实是加入在代码中的垃圾.
到时候还是要清理(JSA新版本中加入了调试信息清理功能).而且添加删除日志也远没有设置断点来的轻松.
而模块做到很小,也不一定是好事.
如果,项目一开始,我们就做好正式发布时导出成单一脚本,完全脱离装载器的打算,那么这样做很好.
但是,如果我们想在运行时采用jsi/pies之类的系统,那么模块太小对性能来说也是一个小小的考验.
19 楼
nihongye
2008-02-13
我觉得import指令应该只包含所依赖的类名,如import("x.y.z"),至于"x.y.z"这个类在那个文件,通过另一个文件来指定,最好有一个默认的映射规则。
独立控制每个文件使用什么形式加载。
另外不用eval,用document.write script标签的形式,因为知道类和文件的映射关系,便可以检测相应的类是否存在来判定文件是否已经加载下来。
独立控制每个文件使用什么形式加载。
另外不用eval,用document.write script标签的形式,因为知道类和文件的映射关系,便可以检测相应的类是否存在来判定文件是否已经加载下来。
18 楼
hax
2008-02-13
kebo 写道
确实jsvm就是导入的脚本没法调试,压根看不到错误的行数。麻烦,只能用眼睛看。有机会试试你这个。
确实。这是个大麻烦。但是相比较 命名空间污染 的问题,我认为这两个问题不是在同一个层面上的。命名空间污染,是一个更加基本的编程问题。而调试定位问题,则是工具层面的问题。
总的来讲,如果类库整体是建筑在jsi/pies之类的系统上,则模块可以做到很小,而我们至少可以定位到源文件名,如果再配合良好的log,则调试定位的问题相对就降低了。
当然,有些同志养成了严重依赖调试器的习惯,这个就比较难办了。
17 楼
hax
2008-02-13
jindw 写道
huhu,谢谢hax的分析。
不过,我们一些想法差别还是挺大的。
关于导入全局空间带来的污染问题。
我不那么看重。
JSI再降低命名污染的问题上,已经作了比较有效的工作。
例:
当我们import("com.xxx.C1")时。
可能,我们真正装载的是C1,C2,C3.....C100。而真正出来的变量只有C1
就是说:JSI已经吧这种污染降低了很大一步,我认为就没有必要再坐到更加及至了,那样有可能影响易用性。
再者,纵使我们真的要同时使用两个同名的不同包内的变量。
我们显示的指定target就是了,毕竟这种情况非常少见。
不过,我们一些想法差别还是挺大的。
关于导入全局空间带来的污染问题。
我不那么看重。
JSI再降低命名污染的问题上,已经作了比较有效的工作。
例:
当我们import("com.xxx.C1")时。
可能,我们真正装载的是C1,C2,C3.....C100。而真正出来的变量只有C1
就是说:JSI已经吧这种污染降低了很大一步,我认为就没有必要再坐到更加及至了,那样有可能影响易用性。
再者,纵使我们真的要同时使用两个同名的不同包内的变量。
我们显示的指定target就是了,毕竟这种情况非常少见。
我觉得不能小看对全局命名空间的污染。我举一个例子。
假设有人写了一个 jsipkg1 的类库。在其中他
$import ("prototype") ,即他的类库依赖 Prototype 库。
有另一个人写了一个 jsipkg2 的类库。在其中他
$import ("jquery") ,即他的类库依赖 jQuery 库。
我们知道 prototype 的 $ 和 jquery 的 $ 是有冲突的。
现在问题就是,jsipkg3 能否同时使用 jsipkg1 和 jsipkg2。
假如$都是被导入到全局空间上,则就存在问题了。当然,也许jsi至少会给点异常信息。但是如果不能在不修改他们的源码的情况下使用,那就是一个问题。当然,我们可以修改jsipkg1和jsipkg2的源码,将其$import语句改为导出到一个容器上,但是这存在一个严重问题:
如果jsipkg1和jsipkg2原来是没有使用jsi的,那么原本他进入jsi,只需要加入依赖声明和import语句,工作量还是不大的,但是现在要修改大量源码了(所有用$的地方要改成 container.$),而且这个味道不好,因为破坏了使用者对于prototype/jquery库的使用习惯,也丧失了$短名字的好处。总之一句话,这里产生了jsi希望避免的侵入性。
再者,假如这是不可避免的,那么宁可在API上让大家默认导入到一个container上,这至少保证一个类库在写好之后不会造成全局命名空间污染,至于写jsipkg3的人,他如果爱用prototype,那他自己还可以强制的把prototype导到全局空间上(通过类似$import("prototype").to(window)之类的语法)。这个问题其实说明一点,如果我用jsi写了一个类库,C1,C2,C3.....C100,使用者只用C1,这个现在是可以办到了,但是现在的问题是,如何避免使用者在使用C1的时候,被迫接受全局空间上被加入了可能引起冲突的 $ 或其他类似的东西。
16 楼
kebo
2008-02-11
确实jsvm就是导入的脚本没法调试,压根看不到错误的行数。麻烦,只能用眼睛看。有机会试试你这个。
15 楼
jindw
2008-02-11
仍外,向后兼容,我现在基本不用考虑,除我之外,我还没见过谁在正式的项目中使用。
我可以放开手来修改。
身边的人,三言两语就可以吧这些改动说个清楚。
我可以放开手来修改。
身边的人,三言两语就可以吧这些改动说个清楚。
发表评论
-
JSA 发布一个新的预览版本
2009-07-27 01:15 1483主要功能是: 1。带上了原来的经典UI界面。 增加了一 ... -
CGI还是个不错的玩意
2009-06-20 18:52 998JSI的调试辅助程序目前提供有JavaServlet版本和ph ... -
用两句话来解释JSI是怎么隔离JavaScript变量冲突的
2009-06-01 17:08 1301“我还是一直没有明白jsi是怎么隔离名字空间的” 好,大家的 ... -
端午在家搞了一个基于JSI的脚本发布系统
2009-05-31 13:06 1353项目上线之前,脚本都要手动重新组合压缩。挺麻烦的,JSICDN ... -
把JSA部署在GoogleAppEngine上,迎接我的是一张笑脸^_^
2009-05-03 02:47 1028第一个无意的测试,结果打印出了一张笑脸^_^ 只是随便输的.真 ... -
关于JSI装饰引擎改进的一些想法
2009-02-16 18:29 907今天看到bellstar大侠发布的SUI,也看了一些设计及实现 ... -
水月镜花
2009-02-07 21:11 1006刚才cctv4在播放着《激情燃烧的岁月》。一些情节开始看着很有 ... -
韬光养晦 厚积薄发
2008-10-22 21:34 2095最近被反复问道,JSI还在继续吗? 开始感觉很诧异,后来想想也 ... -
脚本全局变量探测程序
2008-08-28 23:20 1659为了支持JSI包定义中的模式匹配(方便某些懒人)。我需要一个查 ... -
JSI 类库文件格式探讨
2008-08-05 20:08 2612在JSI中打包脚本类库。 目前只有jar方式,同时支持java ... -
使用中间数据格式优化前端模板性能的想法
2008-06-12 21:24 1813前端时间这里出现了不少讨论前端模板的帖子。 我还是原来的观点 ... -
JSA压缩Prototype1.6时,经常表现的一个错误
2008-05-07 21:15 2445开始发帖错误,我的测试不够严谨。 经过测试,IE也没有踩 ... -
发布一个JSI Example Project
2008-04-30 14:58 4036部署到Tomcat中,打开script目录,可以显示你当前sc ... -
JSI Side 代码风格与规范
2008-04-29 22:07 6112准备编写JSI的外围元素 ... -
给大家展示一下JSI文档工具和导出工具
2008-02-21 11:43 3660演示地址(目前只支持Firefox): http://www. ... -
JSI的延迟装载和异步装载过程的一些原理解释
2008-02-14 17:13 6420出自该贴的回复: http://www.iteye.com/t ... -
JSIDoc设计的两个失败点
2008-02-08 00:11 3670JSIDoc是我一年前开发的用来解析JS文档的纯客户端脚本程序 ... -
JSI2.1计划
2008-01-01 21:13 7122先回顾历史: JSI1(2006-2007)是个简单的框架,只 ... -
JSA 压缩JS时的常见问题
2007-12-30 16:08 42031。保留字滥用 如果你的脚本中存在某些保留字或者关键字属性甚至 ... -
脚本合并时混淆隔离的三个级别
2007-12-23 13:38 3529直接合并--传统方式 根据脚本依赖关系,组织好导入顺序,简单的 ...
相关推荐
JSI框架提供一个无侵入的脚本库管理解决方案,和一个全面的前端开发调试、文档解析、模版编译、打包导出环境支持。 作为一个开发期间的脚本管理工具,让开发者在开发期间享受JSI带来的种种便捷,也可以作为一个运行...
【JSI-full-2.0】是一个基于JavaScript的项目,主要关注的是JavaScript这门编程语言。这个项目的全称可能指的是JavaScript Interface或JavaScript Integrated,但具体含义需要根据项目的文档来确定。从提供的文件...
根据提供的信息,我们可以了解到这份文档是关于海尔液晶电视电源板(型号:0094001224B JSI-190419-050 JSI-220409-050)的原理图。这份原理图详细地展示了电源板的内部电路结构、元件布局及其连接方式等关键信息。...
这是JSI-GAN(AAAI2020)的官方存储库。 我们提供了培训和测试代码,以及经过训练的权重和用于JSI-GAN的数据集(train + test)。 如果您发现此存储库有用,请考虑引用我们的。 参考: Soo Ye Kim *,Jihyong Oh ...
在模块化编程方面,JSI支持导入和导出机制,这是ES6引入的重要特性。通过`import`和`export`关键字,我们可以将代码组织成可重用的模块,降低复杂性并提高代码的可维护性。在"jsi-modules-master"中,可能包含了一...
react-native-multithreading using使用JSI的React Native的快速简便的多线程处理。 安装npm install react-native-multithreading npx pod-i react-native-multithreading using使用JSI进行React Native的快速简便...
### 海尔液晶电视电源背光板0094001274E JSI-320411原理图解析 #### 概述 本文将详细解析海尔液晶电视电源背光板0094001274E JSI-320411原理图中的关键元件及其功能、电路设计思路与工作原理,帮助读者更好地理解该...
这种进度条常用于音视频播放器中,用户可以通过拖动滑块来调整播放进度。我们可以利用Canvas绘制一条长条,并在其中添加一个小滑块,根据进度位置移动滑块。为了提供反馈,滑块的触摸事件需要被捕获并处理,这涉及到...
JSI Wikifier OpenAPI规范 JSI Wikifier API文档存储库。链接文档: : SwaggerUI: ://jsi-eubusinessgraph.github.io/jsi-wikifier-api/swagger-ui/ 看完整规格: JSON YAML 警告:仅当Travis CI完成部署后,以上...
**轻量系统JS-UI框架子系统详解** OpenHarmony作为一个开源操作系统,旨在为各种智能设备提供跨平台的解决方案。为了方便开发者构建针对轻量级设备的应用,它提供了"轻量系统JS-UI框架子系统"。...
【HDT-JSI01】项目是一个以JavaScript为核心的开发实践,它可能是一个开源项目或者教程,因为通常在编程领域,这种命名格式常用于版本控制或学习资源。JavaScript是一种广泛使用的编程语言,尤其在网络开发中扮演着...
eccl-jsi.github.io
Jsi是带有内置websocket-server,sqlite和C -extensibility的javascript -ish解释器。 | | | 快速开始下载适用于 / 的二进制文件: wget ...
javascript sfs多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加
JSI空间索引特意限制了特征,在少数事情上做得很好。 它特别快。 该代码是开源的,并在 2.1 或更高版本下发布。 用法 强烈建议首先查看位于 的 jsi-examples 存储库。 简而言之,您需要像这样初始化 RTree: // ...
4. **优化策略**:在大型数据集上,为了保持查询效率,JSI可能会包含一些优化策略,如批处理、缓存以及动态调整索引结构等。 5. **测试和示例**:源码包中可能包含单元测试和示例应用,用于验证索引功能并展示如何...
:thread: 使用JSI的React Native的快速简便的多线程处理。 安装 npm install react-native-multithreading npx pod-install 需要包括的react-native-reanimated版本。 您可以自己打补丁,也可以等到它发布后再...
### 脚本按需导入(装载)的三种模式对比 #### 一、引言 在Web开发过程中,脚本程序通常需要加载大量的外部库或模块。为了提高用户体验和加载效率,开发人员需要采取合适的脚本按需导入(装载)策略。本文将详细...
通过React 5的MD5的JSI绑定,以极快的速度实现C ++实现。 确认它比在iPhone 11 Pro上使用快10倍,在Essential Phone上快8倍。 您可以在下查看基准测试。 安装 npm install react-native-quick-md5 用法 import { ...
它接受一个函数作为参数,该函数会在数组的每个元素上执行一次: ```javascript let bottles = ['满的', '空的', '半满的']; bottles.forEach(function(bottle) { console.log(`这里有 ${bottle} 的啤酒瓶`); }); ...