事件处理优化

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
<ul id="ul">
    <li id="li1">qwe</li>
    <li id="li2">qwe</li>
    <li id="li3">qwe</li>
</ul>
</body>
<script type="text/javascript">
/*
    目标:
    点击每个li可以有三种不同的效果
*/
//优化前的代码
/*
    利用的就是传统的方式,在每一个需要处理的li上面添加上一个click
*/
    var li1 = document.getElementById(‘li1‘);
    li1.addEventListener("click",function(){
        li1.innerHTML = "兔子只吃胡萝卜";
    },false);
    var li2 = document.getElementById(‘li2‘);
    li2.addEventListener("click",function(){
        alert("by交易");
    },false);
    var li3 = document.getElementById(‘li3‘);
    li3.addEventListener("click",function(){
        location.href = "www.baidu.com";
    },false);

//优化后的代码
/*
    利用的就是事件的冒泡原理,在li的统一的父元素上添加一个click事件
    通过click事件的向上传递性,来获取对应的值
*/
    var ul = document.getElementById(‘ul‘);
    ul.addEventListener("click",function(event){
        switch(event.target.id){
            case "li1":
                event.target.innerHTML = "兔子只吃胡萝卜";
                break;
            case "li2":
                alert("by交易");
                break;
            case "li3":
                location.href = "www.baidu.com";
                break;
        }
    },false);
</script>
</html>
时间: 2024-11-06 23:14:22

事件处理优化的相关文章

javascript scroll事件处理优化

window.addEventListener('scroll' , function(){ //do something console.log('scroll ....') }) 我们常常使用上面代码监听window的scroll事件,但是使用这种方式每次滚动会多次打印scroll..., 如果直接在这种情况下直接调用事件处理逻辑,当逻辑比较复杂时势必会造成一定的性能影响 如果我们想每次滚动滚轮只执行一次处理逻辑,可以使用以下方式处理 function callback(){ //do so

JavaScript 频繁发射事件处理的优化 --- 函数节流/事件稀释

引子:昨天面试时面试官问了如何实现一个固定导航栏,在我答完后面试官问我可能存在哪些问题,如何优化? 这个问题我答得不太好,但现在回想起来应该有两个问题: 1. 把 fixbar元素 position:fixed 之后,它将脱离文档流,后面的元素将会跟上,这可能会形成一个闪烁,解决方法是跟随的元素设置 margin-top 为 fixbar 元素的高度,或者替换上一个等高的元素,这点面试时候没有描述出来. 2. 就是这篇博文主要内容 ”函数节流“,英文名 throttle 函数,在一些库,如und

注册界面的优化之ActionBar组件的应用之(二)ActionBar组件的事件处理

开发步骤: 重写父类中的一个方法onOptionsItemSelected实现ActionBar中的选项单击事件 1 //Register_Activity.java 2 3 public class Register_Activity extends AppCompatActivity { 4 ...... 5 @Override 6 public boolean onOptionsItemSelected(MenuItem item) { 7 //判断系统回去的item 8 switch (

web前端性能优化

前言:  在同样的网络环境下,两个同样能满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒,如果等待超过10秒,99%的用户会关闭这个网页.也许这样讲,各位还不会有太多感触,接下来我列举一组数据:Google网站访问速度每慢400ms就导致用户搜索请 求下降0.59%;Amazon每增加100ms网站延迟将导致收入下降1%;雅虎如果有400ms延迟会导致流量下降5-9%.网站的加载速度严重影响了用户体验,也决

高性能滚动 scroll 及页面渲染优化

本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的关系,节流与防抖,pointer-events:none 优化滚动.因为本文涉及了很多很多基础,可以对照上面的知识点,选择性跳到相应地方阅读.    滚动优化的由来 滚动优化其实也不仅仅指滚动(scroll 事件),还包括了例如 resize 这类会频繁触发的事件.简单的看看: 1 2 3 4 var i = 0; window.addEventListener('scroll',function(){   

android问题及其解决-优化listView卡顿和怎样禁用ListView的fling

问题解决-优化listView卡顿和怎样禁用ListView的fling 前戏非常长,转载请保留出处:http://blog.csdn.net/u012123160/article/details/47720257 问题产生 这算是刚到实习公司接触到的第一个任务.公司某一产品中某个界面的listView高速滑动会有卡顿的现象发生,我的任务就是解决它. 产生原因分析 我一開始的想法比較简单.可能是listview的优化没有做到位,比如convertView的复用.viewHolder的使用等等基础

Effective前端2:优化html标签

  借用Effective之名,开始写Effective系列,总结一些前端的心得. 有些人写页面会走向一个极端,几乎页面所有的标签都用div,究其原因,用div有很多好处,一个是div没有默认样式,不会有margin.background等初始化设置,另外可能会觉得不用div还能用啥.所以看他的页面,一展开是div,再展开还是div,展开四.五层都是div. 这样对用户来说虽然没什么区别,但是作为一名有追求的程序员,这种写法看起来是比较难受的.有些人虽然知道html5新增了很多标签,但也不怎么去

nginx基本优化

1.1   隐藏nginx header里版本号信息 1.2   更改源码隐藏软件名称及版本号 1.3   更改掉nginx默认用户及用户组(worker进程服务用户优化) 1.4   配置nginx worker进程个数 1.5   根据cpu核数进行nginx进程优化 1.6   nginx事件处理模型优化 1.7   调整nginx worker单个进程允许的客户端最大连接数 1.8   配置nginx worker进程最大打开文件数 1.9   开启高效的文件传输模式 1.10  设置连

企业级Web Nginx 服务优化(2)

2.worker_cpu_affinity参数官方说明: 查看cpu的核数的情况:[[email protected] conf]# grep "physical" /proc/cpuinfophysical id : 0address sizes : 42 bits physical, 48 bits virtual top命令很好记得总结 输入top 按 1 来进行查看. 3.压力测试配置结果: a.配置前压力测试结果: 通过观察,我们发现配置前不同CPU使用率相对平均. b.配置