让ie6瞬间崩溃的5种方式

上传人:ji****n 文档编号:45272741 上传时间:2018-06-15 格式:DOC 页数:9 大小:117.60KB
返回 下载 相关 举报
让ie6瞬间崩溃的5种方式_第1页
第1页 / 共9页
让ie6瞬间崩溃的5种方式_第2页
第2页 / 共9页
让ie6瞬间崩溃的5种方式_第3页
第3页 / 共9页
让ie6瞬间崩溃的5种方式_第4页
第4页 / 共9页
让ie6瞬间崩溃的5种方式_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《让ie6瞬间崩溃的5种方式》由会员分享,可在线阅读,更多相关《让ie6瞬间崩溃的5种方式(9页珍藏版)》请在金锄头文库上搜索。

1、让让 IE6 瞬间崩溃的瞬间崩溃的 5 种方式种方式经常遇到莫名其妙让 IE6 崩溃的事情。今天看到了一篇好文章,我整理整理发上来,以后开发的时候要注意了。鉴于国内 IE6 的市场份额还在主流的情况,一定要避免出现以下情况。IE6 真脆弱啊1.设置 scrollbar-base-color,css 里给 table 做了定位,再通过 js 改变其定位 IE6 就崩溃了。关键代码:html, body scrollbar-base-color: #330066; .crash position:absolute;left:200px;top:200px;width:200px; function

2、 galgenfrist() window.setTimeout(crashIE();,1000);function crashIE() var moveNode = document.getElementById(“move“);if(moveNode) moveNode.style.top = “100px“;moveNode.style.left = “200px“;用 IE6 点击测试:ie6 崩溃测试一2.document.writefor (x in document.write) document.write(x);在 FF 和 Chrome 中,都会打印出“prototype”

3、字符,在 IE6 中立即崩溃。用 IE6 点击测试:ie6 崩溃测试二3.在在 CSS 中使用通配符中使用通配符*,在在 HTML 的的 table 标签中直接放置内容(而不是标签中直接放置内容(而不是标签之类)标签之类)*position:relativeaaabbbccc用 IE6 点击测试:ie6 崩溃测试三4.CSS 中出现中出现+任意字符任意字符+/* 立即崩溃立即崩溃;/*用 IE6 点击测试:ie6 崩溃测试四5.onload=“window()“用 IE6 点击测试:ie6 崩溃测试五原文网址:http:/ 6 个导致崩溃的问题,我装的是 IETester,有一个没有测出来。所

4、以没写上来。所以,速速放弃 IE 吧来自: http:/ Ajax 的导致的导致 IE6 崩溃崩溃这段时间公司开始更换 OS,从 Windows 2000 变成 Ubuntu,我们的网站也跟着修改,css 就到处找 hack,javascript 就去找jquery, 测试发现 jquery 的 ajax 请求直接造成部分 ie6 崩溃,只要是 IE6,无论是什么操作系统,一个都没有逃掉,如果是只有自己写的 Ajax 请求还无所谓了,但是那么多的 jquery ajax 插件不能用,实在是痛苦,开始找是否是 IE6 的问题,看了 Ajax:请使用最新版本的 XMLHTTP,了解到 IE6 在不

5、同的 OS 可能使用不同的 xmlhttprequest,如是乎到 windows 2000 下找,发现是MSXML2.XMLHTTP.4.0,windows 2003 下,发现是MSXML2.XMLHTTP.5.0,接着去找 jquery.js 中的写法1 xhr:function()2 3 return window.ActiveXObject ? new ActiveXObject(“Microsoft.XMLHTTP“) : new XMLHttpRequest();4 5 复制代码直接崩溃掉,从上篇文章中了解到,Microsoft.XMLHTTP 为 IE下最早的一个 XMLHTTP

6、 版本,看来 jquery 的开发者也有意的将 ie6 系列的浏览器抛弃IE7 已经开始支持 XMLHttpRequest.最后将这段代码改写成如下模样1 var oRequest;2 if(typeof XMLHttpRequest=“undefined“ 5 for(var i=0;i前或后添加任何字符均会导致 IE6 Crash。该代码来个韩国的一个网站,无论是使用 XHTML 或者 HTML 的什么版本,只要带了DOCTYPE 声明,IE6 就会立即崩溃,当不带 DOCTYPE 声明的时候就没有错误,原因可能跟文档类型声明有关。令令 IE6 崩溃的崩溃的 CSS 代码代码该代码参考自网

7、站 Cats who Code。该 Bug 发现与 2007 年,据说是一名日本人发现的:*position:relative原因在于 table 中直接放置内容,在 IE6 会引起 Mshtml.all 模块损坏而关闭浏览器,非 IE6 则安全无恙。除此之外,存在于 IE6 的 Bug 还有下面这种情况,当伪类为 a:active 时同样会遇到此问题:aposition:relative;a:hoverfloat:left;崩溃 IE6 ,crash ie6解决方案:为 添加 zoom:1; 令其触发 haslayout。aposition:relative;zoom:1;a:hoverfl

8、oat:left;令令 IE7 崩溃的崩溃的 CSS 代码代码此 Bug 来自偷米饭,它只存在 IE7 中据估计是处理省略字的时候导致 IE7 崩溃。 divfloat:left;width:175px;uloverflow:hidden;white-space:nowrap;text-overflow:ellipsis;liposition:relative;崩溃崩溃崩溃崩溃崩溃 crash ie7崩溃崩溃崩溃崩溃崩溃 crash ie7解决方案:为 添加 zoom:1; 令其触发 haslayout令令 IE6 崩溃的崩溃的 JavaScript 代码代码来自 Internet Explo

9、rer Sucks,这个网站就是使用了一下代码,当你使用 IE6 访问的时候,浏览器将立刻崩溃。代码如下:for (x in document.write) document.write(x);具体引起的原因暂时无法解析,但在兼容性和执行效率来看一般不会采取这样的写法。3. 网页数据过多网页含有大量需要处理的数据,造成系统繁忙,如多图页面,超长页面等,或者网页内嵌的各种控件会导致浏览器处理大量数据,造成系统繁忙。如 Flash 游戏,ActiveX 控件等。当浏览器访问网站的时候,如果网站的数据量大,会使得浏览器一般在处理过程中会占用很大的 CPU 使用率和内存、造成浏览器失去响应,甚至会使电

10、脑系统死机。在网站开发的时候,如果充分考虑 Web 性能,很大程度上能避免这个问题。4. Ajax 的 Web 服务漏洞Ajax 的是基于 XML 的异步传输,文本格式的 XML 消息可能是二进制数据带宽量的两倍之多。传输 XML 消息所需的带宽越多,系统或应用程序用来执行其他任务的可用资源就越少。例如执行复杂算法来获取期望结果。过高的带宽可能导致由系统超载引起的性能减退。过高的带宽将导致 Ajax 应用程序输出破损的数据,因为没有足够的资源生成干净的数据。这意味着 Web 服务门户(Ajax应用程序属于其中的一部分)将把破损数据暴露给门户的其他部分,从而导致畸形消息和过度解析。如果威胁者利用

11、了这个漏洞,则会引起浏览器崩溃。另外一方面,频繁的、较小的 HTTP 请求会加重后端服务器、负载均衡程序和防火墙的负担,结果是造成过高的带宽,最终导致性能降低。如果客户端长期停留在该页面或没有关闭浏览器,会使得浏览器的内存持续上涨,得不到释放,导致客户端浏览器崩溃。为此,在较多的时候 Ajax 的时候,我们要考虑通过专门的硬件加速器、优化软件、消除代码冗余、XML 加速功能和解决互操作性问题等方式加速 Ajax 应用程序。另外,积极地监视通信流可以持续地度量 Ajax 应用程序的网络流量性能。通过将数据放入实时日志中,您可以查看在哪些位置何时出现大量的包丢失和抖动事件,响应变慢的原因以及如何通

12、过修改应用程序的优先级来改善通信流性能。5. 其他原因除以上提到的原因之外,还有其他许多原因,虽然有些不会导致浏览器直接崩溃,但也会造成网站无法访问,如日志文件导致磁盘已满、Web 服务器 C 指针错误、进程缺乏文件描述符、线程死锁、数据库中的临时表不够用和服务器超载等,可参考导致 Web站点崩溃最常见的七大原因。总结对于访客,如果登录您网站,浏览器就立刻崩溃,我想这对谁都是无法容忍的,通过总结网站令浏览器崩溃的原因,在我们从事网站开发维护的时候,我们应该尽量去避免内存泄漏、代码错误和冗余及数据量过大等问题,构建更佳性能的站点。本文地址:http:/ PS:本文由维奇总结,如有转载请注明出处,谢谢!原文:http:/ 编辑:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号