IE就瞎菜了…傻了吧唧的蹦出来问“好像浏览器上有个操作死菜了,咱把它干翻吧?”烦人还是小事,十有九个人会点“Yes”,然后就真干翻了…
(根本原因是IE6/7不支持XPath,于是只好遍历DOM来找东西,which is非常慢啊…从一个500K+的DOM里找到一堆东西,Firefox只要几十毫秒,IE6要用到1秒…)
(试了一下JQuery的CSS selector,搞了个折中,IE6和Firefox都一百多毫秒,然则还是不够…几组查询下来IE还是瞎菜了…)
于是用空间换时间,在page上建索引。然则还是不行,因为最耗时的操作不止这一个…
于是把耗时的操作摘出来,原本都在onload里做的事情放在DOM loading的过程中,变成几百个小块来做。最耗时的两个操作,组装过滤列表和查询,用setTimeout变成异步的。
(这个时候很得意的问郑晔:“阻塞操作太长怎么办?”得到答案:“搞成异步的。”)
然后一边唱着“牛x闪闪放光芒”,一边就发现break了另一处的功能…这个组件是被很多地方以很多方式重用的…
紧接着伤心地发现这块JavaScript已经非常混乱而难以理解了…重构迫切需要中…多想用JavaScript搞出如同Erlang一般优雅的并行计算序列啊…
(为什么每次感到很牛x的时候总会紧跟着很失落的发现有一大堆破事搞不定呢…这就是程序员的宿命吧…)