请问个关于内存和性能的问题 本帖最后由 bigcctv 于 2010-11-02 10:25:14 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把所有事件处理程序写到document中,不是说写N个,而是只用document事件,比如:10个按钮要10个onclick事件,而document只要一个onclick事件,冒泡到document,就可以用target.id区分点击的是哪个按钮,那么LZ所疑惑的两个问题都不存在 事件代理<div id="clickid"> <img id="1" src="http://gg.blueidea.com/2010/ewsidc/380_104.gif" alt="" /> <img id="2" src="http://gg.blueidea.com/2010/ewsidc/380_104.gif" alt="" /> <img id="3" src="http://gg.blueidea.com/2010/ewsidc/380_104.gif" alt="" /></div><script>document.getElementById('clickid').onclick = function(e){ e = e||event; var t = e.target||e.srcElement; if(t.tagName.toLowerCase()=='img')alert('我的id是' + t.id);}</script> 是啊~~~但是document那个onclick对象会变得很大吧??而且如果我以后删除了某些button的话,它的处理程序仍然存在于document,所以依然占用内存吧??而分别设置处理程序的话,在删除之前可以通过button.onclick=null;使其处理程序占有的内存被回收~~不知道我的理解对不。。? 个人认为,把所有事件都写到document,很难维护!页面事件多了,document事件中海要加很多判断!这些大量的判断反而还影响性能! 没人要你全部写在一个document里面。这是极端做法。就好像人家告诉你,创建对象消耗内存,你就不创建对象了?事件代理只是在合适的使用使用。就想在table里,给每个td添加一个onclick事件,那一百个单元格是多少个onclick?而给table写一个onclick来代理td的事件就可以节省很多内存。切忌咬文嚼字。 一个document事件,根据id的不同执行不同的方法。应该方便了管理,因为所有的事件都在document中处理只是当事件多了,document的事件就显得过于的臃肿lz可以根据实际需要进行权衡 尽量少访问DOM,可以大大节约内存,提高效率 帮忙,帮忙有关js的 js检测友情链接代码怎么写 javascript获取另外一个网页的内容 extjs前台显示不了数据,后台可以显示,大家帮忙看看什么问题 Struts 的result遇到了iframe应该怎么办? div定位问题 关于showModalDialog的问题 鼠标移过弹出对话框架,这样为什么不行。。。 高分求救:怎么修改RichText中的格式设置(粗体,斜体)? 请教,如果调用javascript进行后台打印(在线等待) Jscript移动图片报错 刚学JS 有点问题想问一下
<img id="1" src="http://gg.blueidea.com/2010/ewsidc/380_104.gif" alt="" />
<img id="2" src="http://gg.blueidea.com/2010/ewsidc/380_104.gif" alt="" />
<img id="3" src="http://gg.blueidea.com/2010/ewsidc/380_104.gif" alt="" />
</div>
<script>
document.getElementById('clickid').onclick = function(e){
e = e||event;
var t = e.target||e.srcElement;
if(t.tagName.toLowerCase()=='img')alert('我的id是' + t.id);
}
</script>
不知道我的理解对不。。?
页面事件多了,document事件中海要加很多判断!这些大量的判断反而还影响性能!
这是极端做法。
就好像人家告诉你,创建对象消耗内存,你就不创建对象了?
事件代理只是在合适的使用使用。
就想在table里,给每个td添加一个onclick事件,那一百个单元格是多少个onclick?
而给table写一个onclick来代理td的事件就可以节省很多内存。
切忌咬文嚼字。
应该方便了管理,因为所有的事件都在document中处理
只是当事件多了,document的事件就显得过于的臃肿
lz可以根据实际需要进行权衡