该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-12
最后修改:2008-12-15
http://code.google.com/p/jssc/
自从jssc ver 3 rc版发布之后,我就因为刚毕业而一直处于半消失状态,因此很长一段时间也没有更新。期间收到很多朋友们的来信,社区消息也好、qq也好、msn也好、email也好,总之是不少。许多建议都是很有价值的,当然也是很有难度的,嘿~
好吧,闲话不说,jssc4的新版本终于即将来到,而它将带来什么变化呢?请往下看:
1.平台变迁。 其实在叫《jssc》这个名字有点儿不适合了,因为它已经“不纯”了。不过为了延续习惯,还是继续下去吧。之所以“不纯”的原因,原因是分析处理的大头已经放在了as上,js只是以调用和生成者的身份出现。
2.速度提升。 js来执行高亮分析的性能一直是让人头疼的问题,即使jssc2已经做得很好了,但依然不容乐观。显然,解释执行的js代码不仅慢,而且在各个浏览器上的表现都不一样。那么为何不另辟蹊径呢? jssc4中主要的分析工作变成了由action script 3来执行,as3的速度和跨平台甚至对oop支持可好得太多了。于是这样做带来的速度提升,是显而易见的。
3.富文本复制。 fins希望在选择代码后复制到word等编辑器中能够连带颜色一块儿复制过去,这在之前的版本中是无法办到的。因为若要复制,高亮后的结果必须是<font color="(color)">code</font>或者<span style="color:#(color)">code</span>的形式。若想纯js办到,需要牺牲掉很多东西。然而在jssc4中,这些都可以了,因为这一切都是在flash编译期间完成的事。
4.扩展。 这可能是需要特殊提及一下的事情了。 jssc4由于主分析工作是由as3来完成的,因此若需要修改、扩展等,都必须修改as代码重新编译才行。想要定制自己的高亮器的话,都必须这样做。
5.大小。 可以看到swf文件目前只有8k多,编译成abc字节码后大小的确很令人惊喜啊。
---
当然有人会这样问:极少数人的浏览器没有flash播放器或者级别太低怎么办? 答案就是不支持的话代码不会被高亮,仍旧原样显示,这算是一种折中吧。代码放在pre或者textarea里,定义好css,也不会乱。
制作过程中仍旧有许多问题,解决后有很多心得,将陆续发布出来讨论。一些改进仍需,请回帖发言…… 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-12-12
|
|
返回顶楼 | |
发表时间:2008-12-12
最后修改:2008-12-12
支持!!!
希望可以成为 世界上最好的 语法着色js框架(现在叫as比较好 呵呵) (我觉得已经是了 ) |
|
返回顶楼 | |
发表时间:2008-12-12
怪现象之一:
整体执行流程是,js找到textarea或者pre节点,取出代码内容->js传递source给as->as解析出结果->as将结果传递回js->js生成结果->js检查是否还有其它节点->继续或者结束。 最初js取出所有代码节点是将它们放在一个数组里的,每传递一次内容从数组shift一个出来。在最后一步循环时检测数组是否为空来判断结束还是继续。 古怪的是ie下最多只能循环6次,超过6次就自动结束了,其他浏览器并没有这个现象。更奇特的是ie下每刷新一次就会自动减少一个,这意味着刷新6次后页面上所有的显示结果都没了…… 解决办法很搞笑,也是一个很常见的解决办法:在最后一布判断时增加一个setTimeout(function, 0)即可…… |
|
返回顶楼 | |
发表时间:2008-12-12
我用的IE8 不行啊。。
说是不安全 完全不能正常打开。不过用360..能打开 |
|
返回顶楼 | |
发表时间:2008-12-12
UTF 乱码。。
|
|
返回顶楼 | |
发表时间:2008-12-15
Army 写道 怪现象之一:
整体执行流程是,js找到textarea或者pre节点,取出代码内容->js传递source给as->as解析出结果->as将结果传递回js->js生成结果->js检查是否还有其它节点->继续或者结束。 最初js取出所有代码节点是将它们放在一个数组里的,每传递一次内容从数组shift一个出来。在最后一步循环时检测数组是否为空来判断结束还是继续。 古怪的是ie下最多只能循环6次,超过6次就自动结束了,其他浏览器并没有这个现象。更奇特的是ie下每刷新一次就会自动减少一个,这意味着刷新6次后页面上所有的显示结果都没了…… 解决办法很搞笑,也是一个很常见的解决办法:在最后一布判断时增加一个setTimeout(function, 0)即可…… else { alert("您的留言起不支持此操作!"); return; } |
|
返回顶楼 | |
发表时间:2008-12-15
xzj127 写道 UTF 乱码。。 我手写的页面,忘了加charset了……gb2312 |
|
返回顶楼 | |
发表时间:2008-12-15
lococode 写道 Army 写道 怪现象之一: 整体执行流程是,js找到textarea或者pre节点,取出代码内容->js传递source给as->as解析出结果->as将结果传递回js->js生成结果->js检查是否还有其它节点->继续或者结束。 最初js取出所有代码节点是将它们放在一个数组里的,每传递一次内容从数组shift一个出来。在最后一步循环时检测数组是否为空来判断结束还是继续。 古怪的是ie下最多只能循环6次,超过6次就自动结束了,其他浏览器并没有这个现象。更奇特的是ie下每刷新一次就会自动减少一个,这意味着刷新6次后页面上所有的显示结果都没了…… 解决办法很搞笑,也是一个很常见的解决办法:在最后一布判断时增加一个setTimeout(function, 0)即可…… Java代码 else { alert("您的留言起不支持此操作!"); return; } else { alert("您的留言起不支持此操作!"); return; } …… 我是错字大王~ |
|
返回顶楼 | |
发表时间:2008-12-15
加入了html和xml了~
另外,激活变量这个功能很实用~点击变量名将激活所有同名变量,只是无法做到区分出全局和局部。 |
|
返回顶楼 | |