精华内容
下载资源
问答
  • 最近给客户部署的一个项目,客户反馈说持续运行一段时间后浏览器崩溃,如下图。 收到反馈后,我们使用自己的设备进行测试,持续运行了48小时,页面并没有崩溃

    最近给客户部署的一个项目,客户反馈说持续运行一段时间后浏览器会崩溃,如下图。

    收到反馈后,我们使用自己的设备进行测试,持续运行了48小时,页面并没有崩溃。后来找到几台老旧机型来测试,运行几小时后确实出现了崩溃的现象。排查原因应该是代码运行中,在某些低端设备上内存释放不及时,长时间运行后内存积累,导致页面崩溃。

    在不能强制客户升级硬件设备的条件下,只能通过优化代码,排查可能存在内存泄漏地方。

    1、页面中有很多通过svg和Lottie实现的动画,并通过v-show来控制不同动画的显示和隐藏。通过调试发现,在v-show值为false,即动画display:none的情况下,动画依然在占用内存,所以在优化时将v-show改为了v-if。

    2、页面中的动画多处使用了setInterval定时器,通过封装公共方法,使用requestAnimationFrame和setTimeout代替setInterval。

    3、对于一些简单功能,如显示当前时间,去掉插件,通过原生js实现。

    优化过后,在大部分之前崩溃过的电脑上没有崩溃现象了,剩下的电脑崩溃频率明显降低。

     

    展开全文
  • 说明模型对象中存在大对象,三维渲染采用的是动态调度的方式,即看到的数据会即时加载到内存中,看不到的数据会很快卸载掉,因此程序会频繁的内存分配和释放比如密集的大块数据,内存会迅速增加场景崩溃。...

    策略:由结果反推

         检查每个缓存文件夹中生成的缓存s3m大小,最大不超过3M,网络环境不好的情况下小于1M,发现有几十兆的,说明模型对象中存在大对象,三维渲染采用的是动态调度的方式,即看到的数据会即时加载到内存中,看不到的数据会很快卸载掉,因此程序会频繁的内存分配和释放比如密集的大块数据,内存会迅速增加场景崩溃。

    解决方法:拆分成多个对象。

     

     

    展开全文
  • 有个BS项目中用到了websocket,目的是能够实时监控显示设备进出数据,后台接收到UDP包后给前台浏览器实时推送,推送频率比较高(几毫秒1包数据),长时间运行导致浏览器卡顿最后甚至崩溃,不知道有什么解决方案。...
  • 360极速浏览器一款在保证安全...造成崩溃的原因分析:1.360极速浏览器开太多标签占用了内存问题,并且随着浏览器开着的时间越长,占用内存量就越大。2.360极速浏览器版本太低的问题,有些ghostwin10用户是不喜欢升级...

    360极速浏览器一款在保证安全和稳定的基础上可以让使用者进行极速阅读的浏览器,但有的时候会因为一些小问题在用户使用时会导致卡屏幕崩溃的现象出现,现在就和小编一起来瞅瞅这篇解决方案吧

    360极速浏览器崩溃修复方法:

    72c11848e0bd84ae9509154a26099230.png

    造成崩溃的原因分析:

    1.360极速浏览器开太多标签占用了内存问题,并且随着浏览器开着的时间越长,占用内存量就越大。

    2.360极速浏览器版本太低的问题,有些ghost

    win10用户是不喜欢升级浏览器版本的,那么就造成以前的版本有很多漏洞而出现卡屏幕崩溃现象,特别是360极速浏览器。

    3.360极速浏览器文件丢失或损坏,有时候在运行电脑使用浏览器的时候,电脑突然重启或断电又或者安装了不必要的流氓插件造成文件丢失或损坏。

    4.电脑中毒,使360极速浏览器文件被恶意修改造成错误。

    解决方法:

    第一种

    1.释放360极速浏览器使用的内存,安装360安装卫士即可使用360加速球一键加速释放不必要的内存。如果浏览器崩溃屏幕卡住了,那么可以右击电脑桌面任务栏,选择任务管理器。或者按Crol+Alt+Delete弹出Windows任务管理器,将结束360SE.EXE进程。

    2.升级360版本或者卸载重装最新版本,选择360极速浏览器菜单栏中的帮助中的检查新版本就会提示升级新版本。卸载360浏览器重新安装,进入我的电脑,点击添加/删除程序,选择360浏览器删除即可,再到官网下载最新版本的安装。

    3.修复360极速浏览器一是可以使用浏览器自带的浏览器医生功能进行修复,点击浏览器医生,选择一键修复即可。二是使用360安全卫士的360电脑救援功能,打开电脑救援,输入“浏览器崩溃”,即可出现各种浏览器崩溃问题的修复功能,点击修复就行了。

    4.电脑ghost win10中毒需使用杀毒软件对病毒进行查杀,并对感染的文件进行隔离。

    第二种

    打开“360安全浏览器”-右上角“工具”-“360安全浏览器选项”-“框架和增强”-“防假死”-勾选“启用浏览器防假死(重启后生效)”。

    优化CPU占用

    打开“360安全浏览器”-右上角“工具”-“360安全浏览器选项”-“框架和增强”-“性能优化(实验性功能)-”“优化CPU占用”试试看

    以上就是ie小编为各位童鞋带来的关于360极速浏览器卡屏幕崩溃现象解决方法的全部内容了,希望对您有帮助,更多浏览器使用教程与技巧,请继续关注IE浏览器中文网站!

    展开全文
  • 网站令浏览器崩溃的原因

    千次阅读 2018-02-08 11:58:30
    在网页在装载的过程中,常常由于... 内存泄漏 还是先谈下内存泄漏,网站由于内存泄漏的而照成崩溃有两种情况,服务器的崩溃浏览器崩溃内存泄漏所造成的问题是显而易见的,它使得已分配的内存的引用就会丢失...

    在网页在装载的过程中,常常由于种种原因使浏览器的反映变的很慢,或造成浏览器失去响应,甚至会导致机器无法进行其他的操作。

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

    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对象间的循环引用时,就会出现内存泄漏的问题。

      简单来说就是,浏览器使用引用计数来为Native对象处理内存,而引用计数的对象无法被销毁,涉及Native对象的循环引用将会出现内存泄漏。配合下面的例子,理解这句话,基本上就可以理解JavaScript造成的内存泄漏了。

    复制代码
    
       
    var obj;
    window.onload
    = function (){
    // JavaScript对象obj到DOM对象的引用,根据id获得
    obj = document.getElementById( " DivElement " );
      // DOM 对象则有到此 JavaScript 对象的引用,由expandoProperty实现
      document.getElementById( " DivElement " ).expandoProperty = obj;
    };
    复制代码

      可见,JavaScript 对象和 DOM 对象间就产生了一个循环引用。由于 DOM 对象是通过引用计数管理的,所以两个对象将都不能销毁。

      另一种情况是闭包中,当碰到闭包,我们在Native对象上绑定事件响应代码时,很容易制造出Closure Memory Leak。其关键原因和前者是一样的,也是一个跨JavaScript对象和Native对象的循环引用。只是代码更为隐蔽。

    复制代码
    
       
    window.onload = function AttachEvents(element){
      // element有个引用指向函数ClickEventHandler()
      element.attachEvent( " onclick " , ClickEventHandler);
    function ClickEventHandler(){
    // 该函数有个引用指向AttachEvents(element)调用Scope,
       //也就是执行了参数element。
      }
    }
    复制代码

      这里简单理解了JavaScript造成内存泄漏的原因,内存泄漏加大浏览器的负担,很有可能导致浏览器崩溃,我们要做的就是尽量去避免这种情况,做法可参考刚刚所说《Memory leak patterns in JavaScript》和《Understanding and Solving Internet Explorer Leak Patterns》两篇文章加以理解。处理JavaScript内存泄漏最终目的还是要打破JavaScript对象和Native对象间的循环引用或者清零引用计数,释放对象。

      一些内存泄漏如闭包内存泄漏,我们可能比较难以发现,内存泄漏的检测我们可能参考《javascript 内存泄露工具使用》。

     

    2. 网页代码复杂和浏览器bug

      大量个人网站和低质量网站代码的涌现造成对浏览标准的普遍不支持,如果正好碰上浏览器存在的一些bug,浏览器渲染引擎在处理这些网页代码的时候会出错,比如陷入死循环或直接崩溃等。

    HTML代码导致网站崩溃

      这是HTML结构错误而导致IE6的崩溃,在<col width="100"/>前或后添加任何字符均会导致IE6 Crash。

    复制代码
    
       
    <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd" >
      < html >
    < head ></ head >
    < body >
     < table >
      < tr >
      < td >
      < table style ="width:100%;table-layout:fixed;" >
      < colgroup >< col width ="100px" >< col ></ colgroup >
      </ table >
      </ td >
      </ tr >
    < table >
    </ body >
    </ html >
    复制代码

      该代码来个韩国的一个网站,无论是使用XHTML或者HTML的什么版本,只要带了DOCTYPE声明,IE6就会立即崩溃,当不带DOCTYPE声明的时候就没有错误,原因可能跟文档类型声明有关。

    令IE6崩溃的CSS代码

      该代码参考自网站Cats who Code。该Bug发现与2007年,据说是一名日本人发现的:

    
      
    < style > * { position : relative } </ style >
    < table >< input ></ table >

      原因在于table中直接放置内容,在IE6会引起mshtml.dll模块损坏而关闭浏览器,非IE6则安全无恙。

      除此之外,存在于IE6的Bug还有下面这种情况,当伪类为 a:active 时同样会遇到此问题:

    
      
    < style type ="text/css" >
      a { position : relative ; }
      a:hover { float : left ; }
      </ style >
    < a href ="" > 崩溃IE6 ,crash ie6 </ a >

      解决方案:为 <a> 添加 zoom:1; 令其触发haslayout。

    
      
    < style type ="text/css" >
      a { position : relative ; zoom : 1 ; }
      a:hover { float : left ; }
      </ style >

    令IE7崩溃的CSS代码

      此Bug来自偷米饭,它只存在IE7中据估计是处理省略字的时候导致IE7崩溃。 

    复制代码
    
       
    < style type ="text/css" >
      div { float : left ; width : 175px ; }
      ul { overflow : hidden ; white-space : nowrap ; text-overflow : ellipsis ; }
      li { position : relative ; }
      </ style >
    < div >
    < ul >
    < li > 崩溃崩溃崩溃崩溃崩溃crash ie7 </ li >
    < li > 崩溃崩溃崩溃崩溃崩溃crash ie7 </ li >
    </ ul >
    </ div >
    复制代码

      解决方案:为 <li> 添加 zoom:1; 令其触发haslayout

    令IE6崩溃的JavaScript代码

      来自Internet Explorer Sucks,这个网站就是使用了一下代码,当你使用IE6访问的时候,浏览器将立刻崩溃。代码如下:

    
      
    < script > for (x in document.write) { document.write(x);} < / script>

      具体引起的原因暂时无法解析,但在兼容性和执行效率来看一般不会采取这样的写法。

     

    3. 网页数据过多

      网页含有大量需要处理的数据,造成系统繁忙,如多图页面,超长页面等,或者网页内嵌的各种控件会导致浏览器处理大量数据,造成系统繁忙。如Flash游戏,ActiveX控件等。当浏览器访问网站的时候,如果网站的数据量大,会使得浏览器一般在处理过程中会占用很大的CPU使用率和内存、造成浏览器失去响应,甚至会使电脑系统死机。在网站开发的时候,如果充分考虑Web性能,很大程度上能避免这个问题。

     

    4. Ajax的Web服务漏洞

      Ajax的是基于XML的异步传输,文本格式的XML消息可能是二进制数据带宽量的两倍之多。传输XML消息所需的带宽越多,系统或应用程序用来执行其他任务的可用资源就越少。例如执行复杂算法来获取期望结果。

      过高的带宽可能导致由系统超载引起的性能减退。过高的带宽将导致Ajax应用程序输出破损的数据,因为没有足够的资源生成干净的数据。这意味着Web服务门户(Ajax应用程序属于其中的一部分)将把破损数据暴露给门户的其他部分,从而导致畸形消息和过度解析。如果威胁者利用了这个漏洞,则会引起浏览器崩溃。

      另外一方面,频繁的、较小的 HTTP 请求会加重后端服务器、负载均衡程序和防火墙的负担,结果是造成过高的带宽,最终导致性能降低。如果客户端长期停留在该页面或没有关闭浏览器,会使得浏览器的内存持续上涨,得不到释放,导致客户端浏览器崩溃。

      为此,在较多的时候Ajax的时候,我们要考虑通过专门的硬件加速器、优化软件、消除代码冗余、XML加速功能和解决互操作性问题等方式加速Ajax应用程序。另外,积极地监视通信流可以持续地度量Ajax应用程序的网络流量性能。通过将数据放入实时日志中,您可以查看在哪些位置何时出现大量的包丢失和抖动事件,响应变慢的原因以及如何通过修改应用程序的优先级来改善通信流性能。

     

    5. 其他原因

      除以上提到的原因之外,还有其他许多原因,虽然有些不会导致浏览器直接崩溃,但也会造成网站无法访问,如日志文件导致磁盘已满、Web服务器C指针错误、进程缺乏文件描述符、线程死锁、数据库中的临时表不够用和服务器超载等,可参考《导致Web站点崩溃最常见的七大原因》。

     

    总结

      对于访客,如果登录您网站,浏览器就立刻崩溃,我想这对谁都是无法容忍的,通过总结《网站令浏览器崩溃的原因》,在我们从事网站开发维护的时候,我们应该尽量去避免内存泄漏、代码错误和冗余及数据量过大等问题,构建更佳性能的站点。

     

    PS:本文由维奇总结,如有转载请注明出处,错漏之处欢迎大家留言指出,谢谢!
    本文地址:http://www.cnblogs.com/wiky/archive/2010/01/16/website-makes-browser-crash-reasons.html 

     

     

    参考资料

      Memory leak patterns in JavaScript

      Understanding and Solving Internet Explorer Leak Patterns

      IE's memory-leak fix greatly exaggerated
      Fabulous Adventures In Coding

      JavaScript内存泄漏

      6 html and javascript codes to crash

      IE6导致Web站点崩溃的原因分析
      提高Ajax应用程序性能,避开Web服务漏洞

    展开全文
  • 提示:定时轮播Echarts造成内存泄漏致使浏览器崩溃问题 文章目录前言一、原因二、解决办法 前言 一、原因 1、echarts图未彻底删除; 2、setTimeout和setInterval未清除; 3、全局定于变量未清除; 4、侦听器未...
  • 网站浏览器崩溃原因分析

    万次阅读 2016-12-28 09:28:35
    其实在网页在装载的过程中,常常由于种种原因使浏览器的反映变的很慢,或... 还是先谈下内存泄漏,网站由于内存泄漏的而照成崩溃有两种情况,服务器的崩溃浏览器崩溃内存泄漏所造成的问题是显而易见的,它使得已
  •  还是先谈下内存泄漏,网站由于内存泄漏的而照成崩溃有两种情况,服务器的崩溃浏览器崩溃内存泄漏所造成的问题是显而易见的,它使得已分配的内存的引用就会丢失,只要系统还在运行中,则进程就会一直使用该...
  • 问题重现:公司做的是监控系统大屏,所以需要相对实时的数据,需要前端不断轮询后台数据,所以时间久了造成浏览器崩溃。排查了好几天的问题,发现是用到echarts的模块占用的内存不断上升。 错误的原因: 每次轮询...
  • chrome浏览器内存溢出分析

    万次阅读 2019-07-18 00:42:44
    第一次操作后内存使用情况: 第二次操作后内存使用情况: 分析总结: 从两次操作的记录对比结果可以看出:system、array、string、closure增加的最多,就可以得出结论,代码里的全局变量定义的多,数组和字符串也...
  • 最开始考虑的是建立websocket长连接进行通信,但是在数据量较大时socket链接会自动断开,后台也没有找到解决办法,最后决定由前端发送定时请求, 但是在使用过程中出现了长时间挂机页面会出现浏览器崩溃的情况 ...
  • 系统老是导致浏览器莫名其妙的重启,后来发现是框架中的iframe标签造成的,当切换iframe中的页面时,前一个页面中的无法被完全释放,导致浏览器所占的内存不停的飙升,最终导致浏览器崩溃。 网上找了个解决方法: ...
  • edge浏览器经常崩溃卡死原因

    千次阅读 2020-10-06 20:42:30
    解决方法:edge浏览器经常崩溃卡死原因
  • 内存崩溃

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

    千次阅读 2013-12-28 16:51:51
     内存泄漏导致网站崩溃的情况有两种,一种是服务器的崩溃,另一种是浏览器崩溃内存泄漏的现象是显而易见的,其原因是操作系统提供给所有进程的存储空间被一个进程榨干了,最终结果是,进程运行的时间越长,占用...
  • chrome浏览器内存回收机制>firefox浏览器(可借助firemin来对内存进行回收)>safari浏览器(本身就很吃内存)
  • 面试某公司的时候,面试官问到,导致浏览器崩溃的原因有哪些?愚辈不才,仅回答出了内存泄漏。其实在网页在装载的过程中,常常由于种种原因使浏览器的反映变的很慢,或造成浏览器失去响应,甚至会导致机器无法进行...
  • 由于设计要求和限制一千多张图片必须放在同一个页面中切换,在这个过程中发现了许多关于Image对象和浏览器内存问题,然而网上讨论该问题的文章并不多。希望我这篇东西能给读者一些参考。 使用Javascript创建new ...
  • 网站让浏览器崩溃的原因有哪些

    千次阅读 2014-04-17 12:51:05
    网站由于内存泄漏的而照成崩溃有两种情况,服务器的崩溃浏览器崩溃内存泄漏所造成的问题是显而易见的,它使得已分配的内存的引用就会丢失,只要系统还在运行中,则进程就会一直使用该内存。这样的结果是,曾...
  • chrome浏览器爬虫崩溃,怎么办?python + selenium + chrome + headless模式 1. 背景 ...这一般是资源消耗过大造成的(据说chrome浏览器内存泄漏的情况)。那如何解决这个问题呢? 这种情况下,我
  • 方法一:释放360浏览器使用的内存,安装360安装卫士即可使用360加速球一键加速释放不必要的内存。如果浏览器崩溃屏幕卡住了,那么可以右击电脑桌面任务栏,选择任务管理器。或者按Crol+Alt+Delete弹出Windows任务管理器,...
  • safari浏览器中:直接导致内存爆满,风扇一直在响 原因因为onClick事件中直接绑定了一个方法。 <Button onClick={get()}> 查询 </Button> const get = (params) => { axios(Object.assing(params, ...
  • Chrome浏览器所有页面全部崩溃!?

    千次阅读 2017-06-20 00:28:26
    求救:Chrome浏览器打开的所有的页面打开一个,崩溃一个,卸载重装了,结果还 是一样! 之后想了一个办法,从别人那里把chrome浏览器安装之后的程序文件夹拷贝过来,这样也可以在自己电脑上使用了!总算可以使用,...
  •  还是先谈下内存泄漏,网站由于内存泄漏的而照成崩溃有两种情况,服务器的崩溃浏览器崩溃内存泄漏所造成的问题是显而易见的,它使得已分配的内存的引用就会丢失,只要系统还在运行中,则进程就会一直使用该...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,959
精华内容 16,383
关键字:

浏览器内存不足崩溃