拿什么拯救你,我的ie

阅读更多
我想在写这篇文章之前,已经有无数的难友被IE折磨得痛苦不堪了.
下面就将我自己用IE的问题作个小结:
1.div 无法覆盖select 表单的问题
  痛苦指数 
  解决办法:
  各路大仙真是仁者见仁,智者见智,归纳起来主要有两种
  a. 隐藏法
       计算select附近的div,如果发现div重叠,就赶紧隐藏select,典型代表 : www.dynarch.com/projects/calendar/
  b.替换法
       干脆用div + table 重写个select得了
       Ext做得不错,提供了对select的refresh方法 www.extjs.com

2.缺少有效的脚本调试支持
    痛苦指数 
    对于B/S的 B端开发人员来说,脚本调试器简直就是小李手的小刀.
    相对于firefox下的firebug addons.mozilla.org/firefox/addon/1843
     IE的解决办法就是安装庞大的 InterDev , 或者目前的.net  frame,就算是这样的庞然大物,
   程序无响应也是经常的事情.
   解决办法:
    偶的解决办法,就是写跨浏览器的脚本,在ff下调试完了再往IE下移。
    如果只在IE下出问题咋办? ———alert!!!!!

3.低性能
   痛苦指数 
    如果你用过这个 www.scbr.com/docs/products/dhtmlxTree/index.shtml
   如果你的书有上千个节点, 一定就会有所体会了,
   在同一个页面里将几个图片重复利用几千次?
   对不起,在IE中你不得不等待"xxxx"个图片正在下载。
  我就弄不懂,同一个页面里的对同一个img的url引用,有必要每次都去检查更新么??
  解决办法:
   把访问策略设置为“自动”吧,第一次的慢嘛只好忍受了。
   提及低性能,有个有趣的实验一定要做——将几千行的纯文本粘贴到 IE 的textarea中试试看,
  一定会给你一个惊喜。

4.自作主张
  痛苦指数 
 如果你调用getElementById,而ie未发现此id,那么它就会去找name为此id的元素并返回给你,不报任何错误。
 解决办法:
 写程序小心再小心

5.内存泄漏
  痛苦指数 
  在页面中通过js反复创建和删去Div,ie6会出现内存泄漏,甚至重启ie仍然无济于事。
  这个真是RIA的噩梦啊!!
  RIA常用的手段就是利用div模拟窗口,因此div的创建和释放是最基本的操作。
 解决办法:
  参考Ext的destory机制
 我的办法就是div复用,建一个就不放,重复利用。就算这样,由于窗口内容的刷新同样需要动态建立和释放html元素,
 仍然存在内存泄漏。

6.兼容性差
  痛苦指数 
  这个问题是前一段在客户那里发现的,微软2003拼音输入法,与ie下textarea的刷新冲突。
 大家可以用下面这个最简单的页面看看效果
js 代码
 
  1.   
  2.   
  3.   
  4.   
  5.   
  6.   
  7.   
  8.     

     

      
  9.   
  10.   
  11.   
  12.   
  13.   

 当使用微软拼音2003的逐词提示,ie无法正确判断出刷新区域,干脆就将整个页面从背景到各层div逐个刷新的一遍。
导致屏幕狂闪。
 让人哭笑不得的是,在firefox下居然一切正常。

7.容错性差
 一个utf编码的页面通常有如下两句开头:
xml 代码
 
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  2. title>费力佩五世巧克力壶title>  
这样写是没有问题的,可以如果调换这两句的顺序,ie就整个晕了,不仅分析不出title不说,
后面的分析也全乱了,由于不知道编码,报出乱七八糟的错误.
高版本的ie6解决了此问题,我的ie6.0.2900.2180存在问题.


总结到此,欢迎大家补充!
当然以上问题出现在目前应用较广的ie6上,ie7已经解决了大多数问题。
但试想如果没有那只火狐狸捣乱,我们能指望用上ie7么?
反过来也是一样,如果当年netscape一枝独秀,情况怕也好不到哪里去。
所幸世界正在向着多元化的方向发展。
 

你可能感兴趣的:(IE,Firefox,Firebug,Google,Linux)