前段时间在VS2008中写了一个简单的js代码紊乱器插件,最终发现:
①速度上不去(3000行代码竟然花费了14分钟之多),由于使用了占位符而不是使用“片断+链表”,产生了太多字符串副本。
②虽然占位方式看起来简化了字符串位置的计算,但却造成了识别困难的隐患;
③最后一段使用了Word的替换(综合普通替换和正则表达式替换两种),通过Word宏完成,这样有些不太好。
④目前仅仅只是替换了变量名而已,不敢替换函数,也不敢替换json对象的属性或值(因为目前无法识别),而且setTimeOut中的根本无法处理,正则表达式中如果正好存在与变量同名的字符串有可能被无意中替换掉(因为目前未能识别出正则表达式)。
⑤挂接到VS2008菜单时出错,仅可在调试时才能挂接,而且未能删除多余的菜单项。
现在只能说是勉强能用了,十多个工作日折腾这么个小工具,真是有点……
目前还没确定下来什么时候可以重写这个工具,提升速度并修正其中的缺陷。初步想法:
①改写为“片断+链表”方式;
②进一步封装为一个新的类,以便连续运行,将整个工程中的相关文件全部替换;
③尽可能正确识别namespace、function、javascript关键字等,以提升工具的作用;
④重新挂接,并解决菜单卸载与重复问题。