浏览器假死

王朝百科·作者佚名  2010-07-21
窄屏简体版  字體: |||超大  

浏览器假死传说中的浏览器假死如洪水猛兽,人人遇而避之,万不得已只得祭出任务管理器大法。最近“假死”这个词汇大有被妖魔化的趋势——其实没有那么多玄机。“假死”只是通俗的说法,比较准确的说法是,在网页装载或者运行的过程中,多种原因造成浏览器响应变慢,甚至无法操作的状态。所以,“假死”并不是一个特定的BUG,仅仅是复杂的网络环境造成的浏览器不稳定状态。

假死产生的原因1、网页代码比较复杂:

浏览器在处理过程中会占用大量的CPU使用率和内存、造成浏览器甚至电脑失去响应;

2、网页代码有bug:

大量个人网站和低质量网站代码的涌现造成对浏览标注的普遍不支持,浏览器渲染引擎在处理这些网页代码的时候会出错,比如陷入死循环等;

3、网页数据过多:

网页含有大量需要处理的数据,造成系统繁忙,如多图页面,超长页面等;

4、网页控件数据过多:

网页内嵌的各种控件会导致浏览器处理大量数据,造成系统繁忙。如Flash游戏,ActiveX控件等。

在以上情况下,如果浏览器框架设计未考虑多页面浏览的特殊性,资源共享访问时未做适当优化,就可能会造成整个浏览器因为单个页面的处理响应过慢而变慢。

防假死技术及其优劣1、多线程技术:

这种技术把网页放到独立的线程中执行,如Maxthon2.5.1之前的版本。这种技术会使浏览器占用的系统资源相对较少。

2、多进程技术:

IE8、Chrome采用的技术,把页面放到独立的进程中执行。

@以上两种技术都是通过进程,线程模型来解决,对javascript等代码造成的假死效果比较好,但对于Flash等控件造成的假死效果不理想。

线程和进程有何区别?简而言之,一个程序占用一个进程,而每个进程中会有多个线程。一个进程中的线程可能会互相影响或影响整个进程,而不同的进程彼此之间就不会有太大影响。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航