论坛首页 Web前端技术论坛

时隔很久了,JSSC4 beta版终于亮相……

浏览 7954 次
该帖已经被评为良好帖
作者 正文
   发表时间: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,也不会乱。

 

制作过程中仍旧有许多问题,解决后有很多心得,将陆续发布出来讨论。一些改进仍需,请回帖发言……

   发表时间:2008-12-12  
http://code.google.com/p/jssc/

哈哈,我也去弄个google code开源~
0 请登录后投票
   发表时间:2008-12-12   最后修改:2008-12-12
支持!!!
希望可以成为 世界上最好的 语法着色js框架(现在叫as比较好 呵呵)
(我觉得已经是了 )
0 请登录后投票
   发表时间:2008-12-12  
怪现象之一:
整体执行流程是,js找到textarea或者pre节点,取出代码内容->js传递source给as->as解析出结果->as将结果传递回js->js生成结果->js检查是否还有其它节点->继续或者结束。

最初js取出所有代码节点是将它们放在一个数组里的,每传递一次内容从数组shift一个出来。在最后一步循环时检测数组是否为空来判断结束还是继续。

古怪的是ie下最多只能循环6次,超过6次就自动结束了,其他浏览器并没有这个现象。更奇特的是ie下每刷新一次就会自动减少一个,这意味着刷新6次后页面上所有的显示结果都没了……

解决办法很搞笑,也是一个很常见的解决办法:在最后一布判断时增加一个setTimeout(function, 0)即可……
0 请登录后投票
   发表时间:2008-12-12  
我用的IE8 不行啊。。
         说是不安全 完全不能正常打开。不过用360..能打开
0 请登录后投票
   发表时间:2008-12-12  
UTF 乱码。。
     
0 请登录后投票
   发表时间: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;
		}
0 请登录后投票
   发表时间:2008-12-15  
xzj127 写道

UTF 乱码。。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

我手写的页面,忘了加charset了……gb2312
0 请登录后投票
   发表时间:2008-12-15  
lococode 写道

Army 写道
怪现象之一: 整体执行流程是,js找到textarea或者pre节点,取出代码内容-&gt;js传递source给as-&gt;as解析出结果-&gt;as将结果传递回js-&gt;js生成结果-&gt;js检查是否还有其它节点-&gt;继续或者结束。 最初js取出所有代码节点是将它们放在一个数组里的,每传递一次内容从数组shift一个出来。在最后一步循环时检测数组是否为空来判断结束还是继续。 古怪的是ie下最多只能循环6次,超过6次就自动结束了,其他浏览器并没有这个现象。更奇特的是ie下每刷新一次就会自动减少一个,这意味着刷新6次后页面上所有的显示结果都没了…… 解决办法很搞笑,也是一个很常见的解决办法:在最后一布判断时增加一个setTimeout(function, 0)即可……


Java代码

else&nbsp;{ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("您的留言起不支持此操作!"); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;else {
alert("您的留言起不支持此操作!");
return;
}


……
我是错字大王~
0 请登录后投票
   发表时间:2008-12-15  
加入了html和xml了~

另外,激活变量这个功能很实用~点击变量名将激活所有同名变量,只是无法做到区分出全局和局部。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics