锁定老帖子 主题:拿什么拯救你,我的ie
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-06
下面就将我自己用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下的firebugaddons.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 代码
当使用微软拼音2003的逐词提示,ie无法正确判断出刷新区域,干脆就将整个页面从背景到各层div逐个刷新的一遍。 导致屏幕狂闪。 让人哭笑不得的是,在firefox下居然一切正常。 7.容错性差 一个utf编码的页面通常有如下两句开头: xml 代码
后面的分析也全乱了,由于不知道编码,报出乱七八糟的错误. 高版本的ie6解决了此问题,我的ie6.0.2900.2180存在问题. 总结到此,欢迎大家补充! 当然以上问题出现在目前应用较广的ie6上,ie7已经解决了大多数问题。 但试想如果没有那只火狐狸捣乱,我们能指望用上ie7么? 反过来也是一样,如果当年netscape一枝独秀,情况怕也好不到哪里去。 所幸世界正在向着多元化的方向发展。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-09-07
关于你的第一个问题,可以在div后面创建一个大小完全一样的iframe来遮盖select。
|
|
返回顶楼 | |
发表时间:2007-09-07
至于第二个问题,建议使用js的IDE。
getElementById和div的释放只能从提高自身代码质量来解决了,其他的IE本身bug,只能期待IE7快出sp吧 |
|
返回顶楼 | |
发表时间:2007-09-07
chen4w 写道: 3.低性能 痛苦指数 如果你用过这个www.scbr.com/docs/products/dhtmlxTree/index.shtml 如果你的书有上千个节点, 一定就会有所体会了, 在同一个页面里将几个图片重复利用几千次? 对不起,在IE中你不得不等待"xxxx"个图片正在下载。 我就弄不懂,同一个页面里的对同一个img的url引用,有必要每次都去检查更新么?? 解决办法: 把访问策略设置为“自动”吧,第一次的慢嘛只好忍受了。 提及低性能,有个有趣的实验一定要做——将几千行的纯文本粘贴到 IE 的textarea中试试看, 一定会给你一个惊喜。 深有感触啊!刚在项目里面设计了一颗树,节点层次很深,数据量也大,我都做成ajax异步取数据了,但是,但是…… 当子节点打开数量一多了,点击父节点隐藏二级菜单的时候,那个停顿真让人受不了,唉,firefox一点问题都没有,怎么会这样? |
|
返回顶楼 | |
发表时间:2007-09-07
重复了,编辑一下。
各位有什么好的解决方法吗?大数据量的树状菜单? |
|
返回顶楼 | |
发表时间:2007-09-08
据报道,超过5000节点浏览器就会很慢。。
|
|
返回顶楼 | |
发表时间:2007-09-08
难道就没有好的解决方法么?
|
|
返回顶楼 | |
发表时间:2007-09-08
笨笨狗 写道 难道就没有好的解决方法么? 用flex。。。直接跳过DOM。。。 |
|
返回顶楼 | |
发表时间:2007-09-08
sp42 写道 据报道,超过5000节点浏览器就会很慢。。
我之前用YUI试过一个次,总共有几万个节点。火狐和ie都死了。 其实,当你需要用树状结构来显示大量信息的时候。就应该想想有没有更好的方法? 我后来改用别的方法了。因为在一页面上弄那么多节点出来,用户用起来根本就不方便。 |
|
返回顶楼 | |
发表时间:2007-09-08
[quote="D-tune"]至于第二个问题,建议使用js的IDE。
getElementById和div的释放只能从提高自身代码质量来解决了,其他的IE本身bug,只能期待IE7快出sp吧[/quote] 能解决Java Applet 总是覆盖div的问题么: 一个弹出的div窗口总是被java applet覆盖,fx和ie下都有这个问题 |
|
返回顶楼 | |