代码发芽网最近一次更新中所遇到的问题

作者:半瓶墨水   链接:http://www.2maomao.com/blog/code-fayaa-update-blockers/

首先说一说怎么缩小生成代码的体积
1. 生成的结果去除生成的html中的class,因为动态主题切换是依赖这个的。后来做了一个backup才搞定
2. 空格不需要span,这个比较容易,一个正则表达式就可以搞定,难以搞定的是firefox和IE的操作方式不同,骂一句,继续
3. merge相同style的span,这个没有做,因为各个主题不一致,吃力到不了多少好:D
最终结果里,一个四百行左右的代码生成的页面从100K减至50K,已经不错了

虽然还是比较肥,但是所有直接生成HTML所有做高亮的工具,都避免不了这个问题
因为代码被分割成一片片,每一片加上span以后都肥了十倍左右。
只有使用JavaScript的可以避免这个问题,但是现有的JavaScript高亮工具有两个致命的缺点:
1. 代码行数稍多就会很慢,几百行就有很明显的感觉,有时甚至造成浏览器假死
2. RSS中无效

再说一说界面的改进
1. 改进这个界面比原来的好,普遍反馈如此
2. 论坛里的很多建议和批评,很不错
3. 功能性主导的网站还是以功能改进为主
个人想法是:又不是搞设计的网站,不对功能产生障碍就行了
在我自己的功底没有进步之前更改只能是凭运气,不如将精力放在功能改进上。
另外,很多现在运行良好的站点,界面在我看来糟透了,但是这又如何?

最后说一下遇到的一些问题
1. jQuery的问题:
是的,jQuery非常好用,但是不适合做代码高亮时使用
看过jQuery的代码就会知道它对每个操作过的元素都会加上jQueryxxxxxxxx=”xxxx”这样一长串
这个严重的导致了生成的代码肥胖,所以做高亮的代码就不用jQuery了

2. 收藏本站代码:不多说了,好不容易找到一个可用的Javascript: IE和Firefox下都有效的“收藏本站”代码

3. IE下用removeAttribute来干掉class的问题,最后终于找到了一位老兄调侃IE的同时提供的答案:同时删”class”和”className”

4. BBcode的实验(chinaunix上的帖子):
找了很多网站,知道了大家虽然都用BBcode,支持却是相差万里,交集很小,在这个交集里,没有背景色
本来用table的背景色挺好用的,但是不是所有的论坛都支持
有的论坛甚至不支持[b]和[i],真是晕啊,安全再重要,也要考虑可用性吧。
最后做成的东西能在ChinaUnix和大多数Discuz!论坛上使用,也能够支持phpBB的论坛
如果不禁html的论坛,直接贴HTML代码好了
做这个的时候,放弃了jQuery,最终使用的是正则表达式替换,现在还在担心是否有bug

5. Django的is_ajax判断很有意思,jQuery等ajax会在请求头上加上一些标志
Django判断这个标志看看是否是Ajax请求,用了一下(复制裸代码的功能),感觉还不错IE6.0的支持

IE中调试javascript真是不爽啊,给出来的都是神秘的行号错误,比起firefox的firebug差远了,IE8不知道会怎么样。

留下回复