- 浏览: 508839 次
- 性别:
- 来自: 初到北京
最新评论
-
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 1484主要功能是: 1。带上了原来的经典UI界面。 增加了一 ... -
CGI还是个不错的玩意
2009-06-20 18:52 1000JSI的调试辅助程序目前提供有JavaServlet版本和ph ... -
用两句话来解释JSI是怎么隔离JavaScript变量冲突的
2009-06-01 17:08 1305“我还是一直没有明白jsi是怎么隔离名字空间的” 好,大家的 ... -
端午在家搞了一个基于JSI的脚本发布系统
2009-05-31 13:06 1358项目上线之前,脚本都要手动重新组合压缩。挺麻烦的,JSICDN ... -
把JSA部署在GoogleAppEngine上,迎接我的是一张笑脸^_^
2009-05-03 02:47 1031第一个无意的测试,结果打印出了一张笑脸^_^ 只是随便输的.真 ... -
关于JSI装饰引擎改进的一些想法
2009-02-16 18:29 908今天看到bellstar大侠发布的SUI,也看了一些设计及实现 ... -
水月镜花
2009-02-07 21:11 1008刚才cctv4在播放着《激情燃烧的岁月》。一些情节开始看着很有 ... -
韬光养晦 厚积薄发
2008-10-22 21:34 2100最近被反复问道,JSI还在继续吗? 开始感觉很诧异,后来想想也 ... -
脚本全局变量探测程序
2008-08-28 23:20 1660为了支持JSI包定义中的模式匹配(方便某些懒人)。我需要一个查 ... -
JSI 类库文件格式探讨
2008-08-05 20:08 2618在JSI中打包脚本类库。 目前只有jar方式,同时支持java ... -
使用中间数据格式优化前端模板性能的想法
2008-06-12 21:24 1818前端时间这里出现了不少讨论前端模板的帖子。 我还是原来的观点 ... -
JSA压缩Prototype1.6时,经常表现的一个错误
2008-05-07 21:15 2453开始发帖错误,我的测试不够严谨。 经过测试,IE也没有踩 ... -
发布一个JSI Example Project
2008-04-30 14:58 4039部署到Tomcat中,打开script目录,可以显示你当前sc ... -
JSI Side 代码风格与规范
2008-04-29 22:07 6114准备编写JSI的外围元素 ... -
给大家展示一下JSI文档工具和导出工具
2008-02-21 11:43 3661演示地址(目前只支持Firefox): http://www. ... -
JSI的延迟装载和异步装载过程的一些原理解释
2008-02-14 17:13 6423出自该贴的回复: http://www.iteye.com/t ... -
JSIDoc设计的两个失败点
2008-02-08 00:11 3673JSIDoc是我一年前开发的用来解析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 3531直接合并--传统方式 根据脚本依赖关系,组织好导入顺序,简单的 ...
相关推荐
基于springboot+Javaweb的二手图书交易系统源码数据库文档.zip
Linux课程设计.doc
课程考试资源描述 本资源是为应对各类课程考试而精心准备的综合性学习包。它包含了多门学科的考试指南、历年真题、模拟试题以及详细的答案解析。这些资源旨在帮助学生系统复习课程内容,理解考试要点,提高解题技巧,从而在考试中取得优异成绩。 资源中不仅包含了基础的考试资料,还特别加入了考试技巧讲解和备考策略分析。学生可以通过这些资源了解不同题型的解题方法和思路,学会如何在有限的时间内高效答题。此外,还有针对弱项科目和难点的专项训练,帮助学生攻克学习瓶颈。 为了确保资源的时效性和准确性,我们会定期更新考试资料和模拟试题,及时反映最新的考试动态和趋势。同时,也提供了在线交流平台,方便学生之间互相讨论、分享学习心得。 项目源码示例(简化版,Python) 以下是一个简单的Python脚本示例,用于生成包含选择题和答案的模拟试题: python import random # 定义选择题题库 questions = [ {"question": "Python的创始人是谁?", "options": ["A. 林纳斯·托瓦兹", "B. 巴纳姆", "C. 比尔·盖茨", "D.
基于 MySQL+Django 实现校园食堂点餐系统。 主要环境: PowerDesigner MySQL Workbench 8.0 CE Python 3.8 Django 3.2.8 BootStrap 3.3.7 Django-simpleui
基于SpringBoot的同城宠物照看系统源码数据库文档.zip
GEE训练教程
基于springboot+Web的心理健康交流系统源码数据库文档.zip
微信小程序 kotlin 实践微信插件助手, 目前支持抢红包(支持微信最新版本 7.0.0及7.0.3).zip
N32G45X运放电路检测电压
梦幻西游道人是梦幻西游里面的一个NPC,主要是刷全服最实惠的高级兽决和其他很好用的比较贵的东西,在长安城、傲来国、长寿村中的任意一个场景出现,一般会出现30分钟,不过东西一般都被秒刷。 梦幻西游道人出现时间解析如下: 1.梦幻西游道人出现时间一直都保持着一年出现两次的规律,即2、3月份的元宵节期间来一次,9月份的教师节期间出现一次。 2.云游道人每个整点(0:00至7:00不出现)会在长安城、傲来国、长寿村中的任意一个场景出现,每次出现后停留时间为30分钟。
tables-3.7.0-cp38-cp38-win_amd64.whl
基于springboot旧物回收管理系统源码数据库文档.zip
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 本文档介绍了MariaDB 10.1的集群部署,至少三台机器做成集群,每台可以同时提供读和写,感兴趣的小伙伴们可以参考一下
内容概要:本文档全面介绍了JavaScript作为一种轻量级的、解释型的语言及其在前端开发中的广泛应用。从JavaScript的基本概念出发,详尽讲解了基础语法(如变量、数据类型、运算符、流程控制)、函数和闭包、对象和原型、DOM操作(如获取、修改、添加和删除元素)、事件处理(如事件监听器、事件对象)、AJAX与Fetch API、ES6+的新特性(如箭头函数、模板字符串、解构赋值)以及前端框架和库(React、Vue、Angular)。除此之外,文章还涉及了代码优化技巧(如减少DOM操作、选择适当的算法和数据结构、使用工具提升代码性能),并对JavaScript的应用场景和发展趋势进行了展望。 适用人群:适用于初学者或具有少量编程经验的学习者,旨在帮助他们系统掌握JavaScript基础知识和前沿技术。 使用场景及目标:通过本教程的学习,读者不仅可以学会基本语法,还能理解并掌握高级概念和技术,如DOM操纵、事件处理机制、异步编程及最新的ECMAScript规范。这不仅有助于改善用户体验、增强网站互动性和响应速度,也能有效提升自身的编码水平和项目开发能力。 其他说明:此文档不仅涵盖了JavaScript的传统功能,还有现代前端技术和最佳实践指导,确保读者能够紧跟行业发展步伐,成为合格甚至优秀的Web开发人员。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
基于springboot高考志愿智能推荐系统源码数据库文档.zip
经典-FPGA时序约束教程
mcu交互实验整体文件
Collins COBUILD (CN).mdx
自定义springboot starter