您现在的位置是:主页 > news > 最近免费中文在线电影/企业网站排名优化公司

最近免费中文在线电影/企业网站排名优化公司

admin2025/5/1 9:10:25news

简介最近免费中文在线电影,企业网站排名优化公司,wordpress评论外链,动画片是怎么制作出来的内存和性能 由于Javascript会为我们的web应用程序提供很强的交互能力,因此会有很多开发人员不分青红皂白地向页面中添加大量的处理程序。在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能。导致这一问题的原因是多方面的。…

最近免费中文在线电影,企业网站排名优化公司,wordpress评论外链,动画片是怎么制作出来的内存和性能 由于Javascript会为我们的web应用程序提供很强的交互能力,因此会有很多开发人员不分青红皂白地向页面中添加大量的处理程序。在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能。导致这一问题的原因是多方面的。…

内存和性能

由于Javascript会为我们的web应用程序提供很强的交互能力,因此会有很多开发人员不分青红皂白地向页面中添加大量的处理程序。在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能。导致这一问题的原因是多方面的。首先,每个函数都是对象,都会占用内存;内存中的对象越多,性能就会越差。其次,必须事先指定所有事件处理程序而导致的DOM访问次数,会延迟整个页面的交互就绪时间。

事件委托

对于事件处理程序过多问题的解决方案就是事件委托。事件委托利用了事件冒泡,只需要指定一个事件处理程序,就可以管理某一类型的所有事件。例如,click事件会一直冒泡到document层次。简单的说就是如果有多个事件处理程序类型差不多的话,我们可以指定一个范围最大的事件处理程序;

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Description" content=""><title>Document</title></head><body><ul><li οnclick="liClick1()">1</li><li οnclick="liClick2()">2</li><li οnclick="liClick3()">3</li></ul></body><script>function liClick1(){alert("点击1");}function liClick2(){alert("点击2");}function liClick3(){alert("点击3");}</script>
</html>

这里我们为每一个元素都绑定了一个事件,如果再一个复杂的web应用程序中,对所有可单击的元素都采用这种方法,那么结果就会有数不清的代码处理程序,此时可以采用事件委托技术来解决这个问题,使用事件委托,只需要在DOM树尽量高的层次上添加一个处理程序,如下所示;

<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Description" content=""><title>Document</title></head><body><ul οnclick="liClick()"><li >1</li><li >2</li><li >3</li></ul></body><script>function liClick(){alert("点击");}</script>
</html>

在这段代码李,我们为<ul>元素绑定了一个事件委托添加了一个onclick事件处理程序。由于所有列表项都是这个元素的子节点,而且它们的事件会冒泡,所以单击事件最终会被化这个函数处理。这种技术需要占用的内存更少优点如下:

1.document 对象很快就可以访问,而且可以在页面生命周期的任何时点上为它添加事件处理程序。

2.在页面中设置事件处理程序所需的时间更少,只添加一个事件处理程序所需的DOM引用更少,所花的时间也更少。

3.整个页面占用的内存空间少,更能提升整体性能;

事件移除处理程序

当处理程序绑定元素时,运行中的浏览器代码与支持页面交互的javaScript代码直接的连接就越来越多,页面就越来越慢,除了事件委托机制外,还可以使用事件移除程序。有两种情况会造成上述问题;

第一种情况是我们从文档中的事件处理元素不需要使用的时候,我们会移除事件处理程序,这种存粹的DOM操作,我们可以使用removeChild()和replaceChild()方法;

另外一种情况是使用innerHTML替换页面中某一部分的时候,如果带有事件处理程序的元素被innerHTML删除了,那么原来添加到元素的事件处理程序极有可能无法被回收;


最典型的就是这种发送验证码的时候,这里有一个按钮被包含在<div>元素中,为避免双击,单击这个按钮时就讲按钮移除并替换成一条消息;这是网站设计中非常流行的一种做法。

	btn = thisBtn;btn.disabled = true; // 将按钮置为不可点击btn.innerHTML = nums + '秒后可重新获取';clock = setInterval(doLoop, 1000); // 一秒执行一次

在<div>元素上设置innerHTML可以把按钮移走,但是不会移走处理程序与按钮的引用关系,所有我们最好手动移除;

btn.οnclick=null;