不是吧,我的是IE7和Firefox2.0.0.8,没有问题啊,只是CSS弱 DIV更弱。
解决方案 »
- 做图片放大镜求助:动态绑定图片到<img了但onmouseover显示的图片却没有更新
- position:relative的图片怎么设置它的重叠谁显示在前面(类似 z-index)的问题?
- 复选框JS判断问题
- javascript的一点小问题?希望JS行家们给我指点指点!
- javascript如何控制table的cellspacing?
- 动态在客户端写JS,但是浏览器提示的错误却是未声明变量,可是那个变量是我需要的值啊,请各位进来看一下,有点急!
- 急需chinaren相册图片滚动和幻灯片播放的效果的代码
- 菜鸟求助,在线,急,谢谢
- window.open函数能不能使新打开窗口覆盖原窗口而不是另开窗口?
- js中如何判断一个对象为空
- 怎样将剪切板上的图片显示出来
- 新开窗口如何读取父窗口或返回值给父窗口
网上说这样很好但实际上反而妨碍了IE下内存的释放.
因为就算你将几个事件模型delete掉,在释放HTMLELement时候缺因为无法释放掉几个onmouseover=function(){}等等。导致整个HTMLElement仍然在残留在内存中
打开页面拦截JavaScript = 28MB
启用JavaScript < 28.5MB 几百K的内存可以忽略不计了
把所有菜单事件触发一遍 = 30MB 这里是循环遍历了儿子 占用了1.5MB 而这里的1.5MB是绑定事件之后 事件触发的,没有通过闭包,因为标签对象的事件在页面装载时就已经附加上去,闭包的工作在触发任何一个菜单之前早就已经结束,没结束浏览器会报错。CPU峰值 4%首先程序是面向对象,用闭包无非就挽救this,让程序更贴近对象编程。再一个没有用递归,每一层都只处理自己的儿子,而且怎个事件绑定只有一次onload的时候。整个IE都关了不知道内存还占着做什么,如果这样操作系统多开几个不规范的网页不就挂了,不是大型树菜单,占用不了多少资源,都在正常范围,不信你就编个最简单的试试,通常大规模JavaScript如果编码习惯不好,乱用对象,那是程序员自讨苦吃。=====
Firefox的测试让我无语,启动Firefox打开空白页 25.7n MB,打开页面跑一遍菜单涨了一点点 还是25.7n MB,当中还有我的一些插件,还有Google的同步收藏夹验证同步占用的资源都在内。
我只是提点意见。LZ的代码非常标准没什么问题。说实在我以前也是这么写的。
C++我开发过单片机数据采集项目 但2年多没用了都生了.
C的话自从在大学时写过泥巴之外就没用过了.javascript我有4年经验了,但以前都是DOM操作.开始OOP模式开发也只是1年多的时间.
不过已经是非常精了.也专门研究过IE的内存泄漏和内存释放问题.所以才能和你这么说.
你这样的代码大概是我半年前还没研究IE内存问题时的写法.
因为曾经看过一个贵佬的js优化建议,里面也建议说另外用一个方法去调用比较好.确实IE存在这这样那样的问题.不过IE的标准确实比较好.FF也在慢慢的吸收IE的部分标准.
如此下去FF还真有可能超越IE.IE可能也会修正自己的bug.
IE 6.0.3790.1830
for(var i=0,l=xxx.length;i<l;i++)....其他没什么问题,结构有点特殊..好像和我的写法有点区别........
这种结构不好评论.
而且只是清除元素因为数据绑定导致内存无法卸载的问题 但脚本里面引起的内存问题则无法解决window.onunload = function()
{
var tags = document.getElementsByTagName("*");//获取全部标签
for(var i=0,l=tags.length;i<l;i++)//遍历全部标签 优化了for循环
for(var o in tags[i])//遍历全部属性
if(o.indexOf("on")==0)//判断属性是否以"on"开头 是否是事件柄
tags[i][o] = null;//清除事件柄的内容
}