首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS魔法堂:再识IE的内存泄露

一、前言                               IE6~8除了不遵守W3C标准和各种诡异外,我想最让人诟病的应该是内存泄露的问题了。...JS Engine Object、DOM Element 和 BOM Element 2.2. JS Engine Object的内存回收机制 2.3....JS Engine Object的内存回收机制    IE的JScript Garbage Collector采用的是Mark-and-Sweep算法,当执行垃圾回收时会先遍历所有JS Engine...由于Mark-and-Sweep算法的缘故,也能很好地释放引用孤岛的内存空间。    而IE下独有的CollectGarbage()则用于回收无引用或引用孤岛的JS Engine Object。  ...由于IE8会对非原始尺寸的图片进行抗锯齿平滑处理,从而消耗更多的CPU和内存资源。当图片大小和尺寸到一定时,则会出现挂死的情况。

3.4K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决办法

    今天在调试一个页面的时候遇到一个问题,在IE9下运行得很好的脚本,在IE8里打开的时候弹出错误:expected identifier, string or number,按照经验,应该是定义对象的时候最后一个属性末尾跟了逗号...,但检查一遍后没发现有这种情况,后来仔细看了一下报错的位置,发现有定义json对象属性时,属性名没有用引号括起来,于是加了上去再试,问题解决了。...综上所述,当出现expected identifier, string or number的错误时,你首先应该检查在使用对象字面量时是否在最后一个属性后跟了逗号,这在js新手写的代码中比较常见,如: {...‘a’: ‘aValue’, ‘b’: ‘bValue’, } ,其次,应该检查字面量的属性名是否用引号括起来了,错误示例: { a: ‘aValue’, b: ’bValue’ } 改成: {

    1.9K30

    JS获取事件对象,获取事件的源对象(Firefox,IE)

    做笔记,以防自己忘记~~ JS获取事件event,不同浏览器有不同的做法。 例如IE下,在js函数中,通过window.event就可以获取,不必在函数中添加什么参数。...也可以用Prototype或者JQuery等,它们有他们对事件的包装。还是使用JS库比较好,不然就有下边的麻烦。...event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.。...下的 event.target = IE 下的 event.srcElement 解决方法:使用obj(obj = event.srcElement ?...在 ie中处理事件直接使用window.event对象即可,但在firefox中,是没有 window.event对象的,函数需要使用事件的时候,需要在事件发生时把事件作为参数传递给函数,不象在ie

    10.1K50

    JS魔法堂:精确判断IE的文档模式by特征嗅探

    但随着IE8提供可选的文档兼容性模式设置和各种加壳浏览器的出现,导致无法通过navigator.userAgent和navigator.appVersion的属性值准确判断浏览器实际提供的API特性和文档模式...+[1,];就是判断是否处于IE5678的文档模式下的特征嗅探。...三、判断IE当前的文档模式 // 判断是否为IE var isIE = navtigator.userAgent.toLocaleLowerCase().indexOf('msie') !...== -1;   注意:若通过IE8+通过指定文档兼容性模式的方式,设置为IE6的文档模式,那么上述的 var isIE6 = isLteIE8 && !isIE5 && !...四、总结                                       由于本篇重在代码实现上,结合《JS魔法堂:浏览器模式和文本模式怎么玩?》也许会更易理解本篇内容。

    1.5K90

    Microsoft SuperPreview for IE:最好的 IE 调试工具

    通过 SuperPreview For IE,我们可以迅速升级你的网站到 IE8,并且同时兼容 IE6 和 IE7。...SuperPreview For IE 可以展示网站在 IE6, 7, 8 各个版本的 IE 浏览器中渲染情况,该软件还提供尺子,平移,变焦等工具去准确区分布局上的不同。...如下图就是我爱水煮鱼在 IE6 和 IE8 上面的比较情况: SuperPreview for IE 除了显示各个版本 IE 浏览器对页面渲染不同之外,它还能展示出元素的标签,大小和位置,应用的样式,...从上面我爱水煮鱼的截图可以看到我爱水煮鱼博客在 IE6 下还是有蛮多的 Bug,我也懒得改,我一直相信博客是实验各种新的 Web 技术的最好舞台,IE6 这样的落后的浏览器,很多新的 Web 技术根本没法体现...但是 SuperPreview for IE 对于商业网站制作和调试来说,还是有相当大的帮助的,毕竟还有蛮多用户使用 IE6,不知道 Window 7 系统发布之后,这样的局面是否有大的改观。

    1.3K20

    IE与IE内核浏览器的那点事

    真正的IE浏览器与IE内核的浏览器是不是一回事呢,是不是完全一样咧?如果不一样又有什么关系咧?下面一起来找答案吧!...知识补给:   1.浏览内核 简介   2.IE内核浏览器 简介 我的结论:根据以往的经验和上面资料可知,纯IE浏览和IE内核浏览器是有所不同的,如果完全一样也没必要做出那些浏览器了不是,只有做ie皮肤和插件就...那么主流的IE内核浏览器和纯IE浏览要怎样判断呢?来看IE内核主流浏览器的对比数据和查询方法。...IE最高版本 QQ浏览器 QQBrowser(IE 非x64) MSIE 7.0 TT浏览器 1.无(IE 非x64) 2.WOW64(IE x64) MSIE 7.0 真正的IE浏览器 1.无(IE ...非x64) 2.Tablet PC(IE x64) 本地IE最高版本 根据以上的信息可以得出javascript方法判断是否纯IE浏览器,代码如下: function isTrueIE() {

    1.5K60

    IE中的内存泄露

    参考文章: Winter 的《浏览器中的内存泄露》 鸟食轩的《理解并解决IE内存泄露的方式[翻译]》 IBM的《JavaScript中的内存泄露模式》 还有两篇文章: IE's memory-leak...fix greatly exaggerated Memory Leakage in Internet Explorer – revisited IE中内存泄露的几种方式: 1、循环引用(Circular...References) — IE浏览器的COM组件产生的对象实例和网页脚本引擎产生的对象实例相互引用,就会造成内存泄漏。...虽然IE有这么多的问题,但还是有工具可以检测你写的代码是否存在内存泄露,对于代码量少、复杂度并不高的可以使用sIEve,大项目中使用它想跟踪产生内存泄露的代码则比较困难了。...好在还有一个工具:Javascript Leaks Detector JLD的强大之处在于能够模拟IE6和IE7的GC情况,和真实的回收情况。这样可以做一个比较。

    96940

    判断IE版本的语句 ...

    [endif]–> Ite:less than or equal to意思是小于或等于IE6浏览器,用于IE浏览器的条件注释,常用于CSShack,针对IE的JS等。    ...同时,单就IE而言,因IE版本的升级更替,目前浏览者使用的主要停留在 IE5(IE5.5)、IE6和IE7这三个版本中。...所以,通过IE浏览器中的专有条件注释可有针对性的进行相关属性的定义。     条件注释只能用于Explorer 5+ Windows(以下简称IE)(条件注释从IE5开始被支持)。...[endif]–>     这其中就区分了IE7和IE6向下的浏览器对CSS的执行,达到兼容的目的。同时,首行默认的css.css还能与其他非IE浏览器实现兼容。...IE]>来定义非IE浏览器下的状况,但注意:条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下非单不是执行该条件下的定义,而是当做注释视而不见。

    1.9K70
    领券