西西河

主题:【原创】Javascript、 IE:山而王暴走中 -- 山而王

共:💬23 🌺39 🌵1 新:
分页树展主题 · 全看 下页
  • 家园 【原创】Javascript、 IE:山而王暴走中

    这两天只睡了10个小时,处于暴走状态。看我能不能理性地将事情说清楚。

    我们尊贵无比的顾客大人,小手指头一抬:顺便说一声,你们系统速度太慢。

    顾客的心声就是我们的命令。我们查,我们删,我们改,我们暴走。。。

    几十年的经验全使上,能加的班全加上,能榨的脑汁全榨出来,提高了。。。。20%。

    老板:这不够戏剧化。我要的是令顾客大人一见钟情、或者摔到地上那种提高,至少。。。50%。

    我差点摔到地上,含泪:老板,如果不过分的话,能不能把IE的源码买过来?

    我的抱怨是有根据的。先说说前提条件:

    - IE为每个页面建了一个树型结构,里面存储着该页面所有的HTML COMPONENT

    - 如果你有一个HTML COMPONENT,比方说一个TEXTFIELD,它的名字是“山而王”。

    - 那么你要控制它的显示时就要用

    document.form1.form111.山而王.style.visibility = "visible";

    - 另一种访问方式是用可怜的“山而王”做名字,让IE帮你找到这个东东

    document.getElementById("山而王").style.visibility = "visible";

    我们当然要尽量用第二种访问方式。几百个COMPONENT,多少层LAYER下来,往往一个TABLE EMBEDDING,谁也找不到谁了。

    好了,经过我等精心测量,发现:

    - 使用第二种方式,也就是说让IE 帮我们找到这个东东,比直接访问要慢无穷多倍,

    - 我们干脆自己写了个HASH,存了所有的COMPONENT,用这个方式访问还是比IE 要快10倍。

    这简直没有天理了。要知道我们自己写的HASH,只是一个普普通通的Javascript 数据结构,它是在IE之上运行的。作为平台的IE,在检索自己的、已经存储好的数据时,竟然被业余语言Javascript打败??

    这一重大“科技成果”的发现,导致我们可悲地开始建立一个完整的关键字到HTML

    COMPONENT映射的HASH。这无疑和IE是重复的,然而效果是明显的。

    同样的程序,即使在FIREFOX上运行也比IE要快。在LINUX上更是快一倍。这说明了,IE的数据结构及其搜索方法糟糕透顶。

    我很想建议我们的顾客改用FIREFOX,但是我不敢和1千万美金开玩笑。我困沌,我暴走,我垂头丧气。好比一个练习许久的舞蹈者,忽然发现表演的舞台是一堆烂泥。

    住在西雅图的兄弟姐妹,有认识比尔。盖茨先生的给捎个话。

    就说新泽西的山而王说:

    盖子,你的CODE太烂!

    • 家园 老大,你技术一流,思路却有点偏激

      IE不是一个单纯的IE,而是为M$整体上服务的。如果没有记错,IE作为MS进入并追赶Inernet时代的核心产品,至今都没有收过一分钱。

      MS的特点是容错性超强,这样一来,是个三脚猫就能做网页(估计占世界网页总量的80%以上),然后只能使用IE察看,然后MS总体市场份额继续扩大。。。Linux好处是严谨规范效率高,作为IT工作者当然喜欢了,但要知道世界上95%以上的人是计算机文盲。。。。不是早就说了吗,MS做市场的人一流,做XX的二流,做技术的三流。。。

      其实也正是ms的易用性和兼容性的历史包袱太重,有人说如果把WINDOWS的各种功能单独分割开来,可以定制的话,性能和乃至稳定性不会比Linux差。其实老比不是做不到,而是绝对不会那么做,哪怕数十年如一日背着一个这样恶名。。。

    • 家园 所以盖茨退了嘛。。。

      我还说是谁让他下了那么大决心呢。。。

      好好休息,平心而论,有只火狐狸在就是好,要不得

      把人气死。

    • 家园 花!
    • 家园 这个问题这么严重啊?得看看。对了,你还是等IE7吧
    • 家园 正在college学习,谢谢山而王的好贴

      和大家的跟帖

    • 家园 终于有人也陷进去了...

      以前做过一个数据库检索页面,500个结果,每个结果又包含四五十个elements,要求使用Javascript排序,直接用DOM structure寻址还好,一旦用了GetElementByID或者GetElementByName,你就等吧,没个十几分钟机器是不会有反应的...

      后来修改了一下sorting algorithm,排序时间缩短到十分钟之内,architect拍板定盘子了:“That's what they asked for, 10 minutes is what they get。”

      现在看,如果当时改用Hash,performance能提高10倍?hoho,不可思议... 根本想不到...

      IE对于DOM的支持也是烂得一塌糊涂... 共同声讨之...

    • 家园 此一时彼一时也

      IE刚出来的时候本质上一个数据块还不能大于64K呢,当然只能用树型的数据结构,实在数据太多了可以把某些个树枝单做一个块处理而不影响整个的数据结构。那时候怎么可以想象写个HASH存了所有的COMPONENTS,万一某个用户的页面是属裹脚布的那不就不活了?

      LINUX是基于UNIX的结构,寻址操作的不同(相对DOS/WIN)使得他们确实很有长期发展潜力。但对软件开发者(尤其没什么根基的小公司,新公司)而言,UNIX确实很杀人,根本不可能如期完成开发任务。

      • 家园 恰恰相反

        把网页转换成树型数据结构,也就是Document Object Model (DOM),是新一代浏览器的特征,是对新兴起的XML潮流的一个回应,把原来对格式的并不严谨的HTML在浏览器里转化为严格格式化的XML,这样可以使客户端应用的开发更加规范。对早期以处理静态HTML为主的浏览器来说,这样做是没有太多意义的。

        http://en.wikipedia.org/wiki/Document_Object_Model

        关键词(Tags): #DOM
        • 家园 是这样啊,我倒是搞错了

          多谢指教。当年我自己很喜欢树这种结构,逻辑性好,可扩展可维护,就是检索麻烦,除非自建索引。好多年不干了,真是三十年河东三十年河西啊。

分页树展主题 · 全看 下页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河