请问个关于内存和性能的问题 本帖最后由 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,可以大大节约内存,提高效率 如何在html调用js函数将参数传递给js函数中? 一段得到焦点开始滚动从左向右滚动字幕,失去后停止滚动的代码 求验证(在线等) 关于extjs的事件执行 Re:一个关于iframe的问题 关于include的问题 一个计算数组的问题 如何动态使一个元件不可见 如何能移动一个层? 关于字面量的问题 typescript函数写法差别,求解答! 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可以根据实际需要进行权衡