网站令浏览器崩溃的原因

面试某公司的时候,面试官问到,导致浏览器崩溃的原因有哪些?愚辈不才, 仅回答出了内存泄漏。其实在网页在装载的过程中,常常由于种种原因使浏览器 的反映变的很慢,或造成浏览器失去响应,甚至会导致机器无法进行其他的操作 。

对于访客,如果登录您网站,浏览器就立刻崩溃,我想这对谁都是无法容忍的 ,对此总结了网站导致浏览器崩溃的原因:

1. 内存泄漏

还是先谈下内存泄漏,网站由于内存泄漏的而照成崩溃有两种情况,服务器的 崩溃和浏览器的崩溃。内存泄漏所造成的问题是显而易见的,它使得已分配的内 存的引用就会丢失,只要系统还在运行中,则进程就会一直使用该内存。这样的 结果是,曾占用更多的内存的程序会降低系统性能,直到机器完全停止工作,才 会完全清空内存。

Apache的Web服务器是用C/C++编写的,C/C++的内存泄漏问题不必多说,系统 中存在无法回收的内存,有时候会造成内存不足或系统崩溃。在Java中,内存泄 漏就是存在一些被分配的可达而无用的对象,这些对象不会被GC所回收,然而它 却占用内存。

而在客户端,JavaScript所造成的内存泄漏,也将可能使得浏览器崩溃。关于 JavaScript的内存泄漏的文章,较权威的有《Memory leak patterns in JavaScript》和《Understanding and Solving Internet Explorer Leak Patterns》。

JavaScript 是一种垃圾收集式(garbage collector,GC)语言,这就是说, 内存是根据对象的创建分配给该对象的,并会在没有对该对象的引用时由浏览器 收回。再根据《Fabulous Adventures In Coding》一文的说法:“JScript uses a nongenerational mark-and-sweep garbage collector.”,对” nongenerational mark-and-sweep”的可以这样理解,浏览器处理JavaScript并 非采用纯粹的垃圾收集,还使用引用计数来为Native对象(例如 Dom、ActiveX Object)处理内存。

在引用计数系统,每个所引用的对象都会保留一个计数,以获悉有多少对象正 在引用它。如果计数为零,该对象就会被销毁,其占用的内存也会返回给堆。 当 对象相互引用时,就构成循环引用,浏览器(IE6,Firefox2.0)对于纯粹的 JavaScript对象间的循环引用是可以正确处理的,但由于在引用计数系统,相互 引用的对象都不能被销毁,因为是引用计数永远不能为零,因此浏览器无法处理 JavaScript与Native对象(例如Dom、 ActiveX Object)之间循环引用。所以,当 我们出现Native对象与JavaScript对象间的循环引用时,就会出现内存泄漏的问 题。

时间: 2024-10-31 02:10:02

网站令浏览器崩溃的原因的相关文章

网站导致浏览器崩溃的原因总结(多款浏览器) 推荐_javascript技巧

面试某公司的时候,面试官问到,导致浏览器崩溃的原因有哪些?愚辈不才,仅回答出了内存泄漏.其实在网页在装载的过程中,常常由于种种原因使浏览器的反映变的很慢,或造成浏览器失去响应,甚至会导致机器无法进行其他的操作. 对于访客,如果登录您网站,浏览器就立刻崩溃,我想这对谁都是无法容忍的,对此总结了网站导致浏览器崩溃的原因: 1. 内存泄漏 还是先谈下内存泄漏,网站由于内存泄漏的而照成崩溃有两种情况,服务器的崩溃和浏览器的崩溃.内存泄漏所造成的问题是显而易见的,它使得已分配的内存的引用就会丢失,只要系统

严格来说不是光CSS就能令IE浏览器崩溃(crash)

 严格来说不是光CSS就能令IE浏览器崩溃(crash),而要配合一定的XHTML架构.到现时为止发现有两种写法的代码分别会令IE6.IE7崩溃,至于原因我尝试寻找过答案但至今还没找到-如你有这方面的认识或更详细的资料很希望你能分享一下! 令浏览器崩溃的代码如下: Crash IE6 <style type="text/css"> a{position:relative;} a:hover{float:left;} </style> <a href=&qu

360浏览器崩溃的几种原因与解决方法

  最近,有360浏览器的用户反映说,当他打开360浏览器的时候,系统提示:此页面已崩溃,无法正确显示.这位用户遇到的就是360浏览器崩溃的问题,那么,是什么原因造成360浏览器崩溃,遇到360浏览器崩溃,用户该怎么解决呢?下面,就一起来看看小编给大家整理的360浏览器崩溃的几种原因与解决方法! 360浏览器崩溃 造成360浏览器崩溃的原因: 360浏览器开太多标签占用了内存问题,并且随着浏览器开着的时间越长,占用内存量就越大. 360浏览器版本太低的问题,有些用户是不喜欢升级浏览器版本的,那么

360浏览器崩溃怎么解决

  前一阵子,不少360浏览器的用户都发现,360浏览器一打开,系统提示:此页面已崩溃,无法正确显示.这就是遇360浏览器崩溃的问题,那么,360浏览器崩溃怎么解决?下面,就一起来看看小编给大家整理的360浏览器崩溃的几种原因与解决方法! 360浏览器崩溃 造成360浏览器崩溃的原因: 360浏览器开太多标签占用了内存问题,并且随着浏览器开着的时间越长,占用内存量就越大. 360浏览器版本太低的问题,有些用户是不喜欢升级浏览器版本的,那么就造成以前的版本有很多漏洞而出现卡屏幕崩溃现象,特别是36

网站项目 谷歌浏览器崩溃了

问题描述 网站项目 谷歌浏览器崩溃了 asp.net 网站项目 浏览的时候用谷歌浏览器浏览时会出现这个问题(如下图),但是其它浏览器不会,度娘的都是设置浏览来解决,但是这个问题肯定是网站本身造成的,那么有什么办法可以解决 ,除设置浏览器设置之外. 解决方案 起码用fiddler看看返回了什么html吧.不然天知道. 解决方案二: 看看是什么语句导致了崩溃,找到相应的语句,发上来,大家一起分析 解决方案三: 就是啊,你多发点调试信息上来看看啊 解决方案四: 浏览其他网站出现这个问题没有?保存其他浏

百度上周末大更新之后网站外链减少的原因分析

今天早上笔者一如既往的打开自己运维的几个网站,发现这几个网站排名无任何变化,还是稳固百度首页的,文章有几个站收录增加了,但是令笔者产生不解的是几个网站清一色的外链数量大幅度下降,这令笔者咋舌,对于网站外链减少的原因,笔者也进行详细分析了一下,今天以这篇文章当做经验的总结吧,好了闲话短续进入今天主题,百度上周末大更新之后网站外链减少的原因分析. 第一,论坛签名外链是外链减少表现最突出的的渠道.随着百度算法的不断变化,前一段时间,论坛签名外链只是被百度降低相关权重,但是网站为了吸引蜘蛛,还是可以做一

网站首页被K的原因及其恢复方法

最近在推一把上面回答朋友问题发现最近提问询问"首页被K"的人比较多,学朋自己的站也有几个首页被干掉了.具体是什么原因及其怎么恢复首页收录呢请往下看. 首页被K症状: 1.首页从百度消失. 2.首页排名消失 3.内页收录不变(或有小量下降) 4.内页排名不变(或有所下降 或 全站排名下降) 以上问题均是站长遇到的问题,遇到以上问题学朋想说的是 (1.)平常心对待. 急也没用,急了反而会急功近利帮倒忙.学朋之前一朋友网站首页被K了后急了,一天就给自己网站添加了7个友情链接,想让其快速恢复,

页面iframe导致手机浏览器崩溃解决方案

我们刚刚上线的项目,用iframe嵌套网页来实现手机端类似预览PDF的功能!上线之后,有部分客户反映,微信打开网页出现微信崩溃的问题.经过反复检查和修正,发现,嵌套过多的iframe确实可以引起浏览器崩溃. iframe替代方案 虽然我们对iframe性能,代码,做了最大限度的改进和优化,但是嵌套过多的iframe还是会引起微信崩溃.因此,我们只能想最简单的替代方案! jquery load(url) 方案 jquery 有load事件, 例如: $(window).load(function(

Opera:新缓冲溢出漏洞只会导致浏览器崩溃

本周四,一家名为Vupen Security的网安公司发现了Opera1 0.5及更低版本浏览器中的一个缓冲区溢出漏洞,消息发布以后,各界 纷纷表示该漏洞可能会导致严重的安全问 题,攻击者可以利用这个漏洞远程控制被攻击的电脑执行恶意代码.这家公司目前为止尚未透露该漏洞的细节,不过Opera公司的发言人则表示该漏洞只会使浏 览器崩溃,但未必会严重到可令攻击者远程执行恶意代码的程度.Opera公司的发言人 Thomas Ford表示:"我们 认为该漏洞的主要危害是会导致浏览器崩溃,而要想利用这个漏洞