event

JS滚轮事件(mousewheel/DOMMouseScroll)了解 -2014

◇◆丶佛笑我妖孽 提交于 2020-01-24 17:08:06
by zhangxinxu from http://www.zhangxinxu.com 本文地址: http://www.zhangxinxu.com/wordpress/?p=3175 一、学无止境、温故知新 //zxx: 本段与技术无关,一些很个人的吐槽,可以跳过 已经没有了小学生时代过目不忘的记忆力了,很多自己折腾的东西、接触的东西,短短1年之后就全然不记得了。比方说,完全记不得获取元素与页面距离的方法( getBoundingClientRect ),或者是不记得现代浏览器下触发DOM自定义事件的方法( dispatchEvent ). 显然,适当的温习,翻阅以前的东西,或者自己空余时间处理相关的东西还是有必要的。其实,细想,东西记不住是自己自身原因,在折腾的时候就没有想方设法牢记(而不是通过反复使用记住)。比方说 getBoundingClientRect 就是“得到客户端矩形边界”的意思,或者使用邪恶记法记住“割( g )逼( b )艹( c )软( r )”。 dispatchEvent 方法使用“ 3 步走”,“创建( createEvent )-初始( init*Event )-分派( dispatchEvent )”。 学习的脚步不能停止。一站到底的那些“变态”们也有不知道的东西,显然,我们这些草辈,尤其年轻的自己,不知道的更多

MySQL常用积累

喜夏-厌秋 提交于 2020-01-24 05:49:57
1、用一个分组查询的结果集作为更新另一张表的数据 如分组统计报名表中各个活动的报名人数,然后根据活动id以及人数去更新活动表中的报名人数字段 UPDATE event e INNER JOIN (SELECT event_id,count(1) as num FROM event_sign_up GROUP BY event_id) s ON e.id=s.event_id SET e.num_sign_up=s.num 再如查询活动名及报名人数: SELECT `event`.`subject`,s.num FROM `event` LEFT JOIN (SELECT event_id,count(1) as num FROM event_sign_up GROUP BY event_id) s ON `event`.id=s.event_id ORDER BY s.num DESC 注: sql中left join 、right join 、inner join之间的区别:   left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等(根据条件ON)的记录 ;左表有,右表没有的补空NULL。   right join(右联接)返回包括右表中的所有记录和左表中联结字段相等(根据条件ON)的记录;右表有,左表没哟的补空NULL。   inner join(等值连接

基于事件驱动的编程模型(C++asio网络库相关)

可紊 提交于 2020-01-23 11:45:49
基于事件驱动的编程模型 1、reactor模式:lighttpd,libevent,libev,poco 2、Proactor模式:Asio,locp rector模式简单一点 reactor模式: 有一个中心部分处理事件告诉回调通知 initiation dispatcher:中心模块,handle_events()调用synchronous event根据返回值知道handle哪些事件已经完成,然后再调用event handler synchronous event demultiplexer:处理io的事件分离器,如外部有玩家进来或触发IO事件 handle:一般网络连接socket(最终要处理的) 大部分单线程服务器都用这个模式 如handle被通知可以发送一份数据,最终发送通过event_handler完成 缺点: 所有逻辑跑一起,event handler容易阻塞,如新用户登录要拉数据 proactor模式: 很多proactor本身可以由reactor模拟实现 initor:发起者(socket)绑定最终回调 aop:自身当成一个事件放入队列 proactor:事件分发查看哪些事件已经完成,调用最终回调 调用最终回调时一定是某事件已经完成 reactor调用最终回调时是将要做某件事情,proactor是先做事情做完调最终回调 单线程用此模型比较废

UEFI EVENT 全解

点点圈 提交于 2020-01-23 09:15:36
Event和Timer在UEFI当中是怎么实现的以及原理,我们先从Timer开始,然后细细的拨开隐藏在底层的实现。 先说Timer,那什么是Timer呢?其实在中文里面我们把它叫做定时/计数器,但是我的理解它不仅仅是一个定时/计数器硬件而是一个被程序设计者设定为工作在特殊模式下的 做定时/计数器 ,仅仅是一个硬件的定时器还不能算是Timer。定时/计数器在几乎所有的数字处理器系统当中都是一个必备的设备,没有它我们的各种运行在cpu上的系统软件都会瘫痪,他们就会变成生活在桃花源当中的世外人一样,完全没有时间参考,不知世事更替,所有的原来的秩序都会变得混乱,所以来说他应该是我们系统软件人员必须要关注和处理的一个设备。 说到 做定时/计数器 ,最经典的当数intel兼容的8253/8254定时器,它几乎是所有的PC必须兼容支持的一颗IC,当然在其他的微处理器系统当中也是支持的,比如MSC8051,以及其他的微处理器当中。不过Timer不止一种在PC当中有许多的定时器可以作为Timer来使用,比如ACPI timer,HPET timer等等,虽然他们叫法不一,功能强弱不一,所提供给系统软件设计者的编程接口不完全相同,但是他们都提供了一个最基本的功能,那就是定时,计数功能。几乎所有的Timer都能在不需要外力干涉的情况下在系统的时钟脉冲的驱动之下,自动计数

JavaScript事件

时间秒杀一切 提交于 2020-01-23 03:49:07
最近更新:2014年03月02日09:54:44 首发链接: http://www.cnblogs.com/sprying/p/3194899.html 一、事件处理程序 1、HTML事件处理程序 如果当前绑定事件的元素是表单的一个输入元素;则this隐性指代可描述如下 function(){ with(document){ with(this.form){ with(this){ // 元素属性值 } } } } 2、DOM0级事件处理程序 事件处理程序是在元素的作用域中运行的,也就this引用当前元素。 3、DOM2级事件处理程序 addEventListener 、 removeEventListener 接受三个参数,最后一个参数是一个布尔值,false表示在冒泡阶段调用事件处理程序,true是在捕获阶段调用。通过addEventListener添加的匿名函数将无法移除。 4、IE事件处理程序 attachEvent 、 detachEvent ,此方法接受两个参数,事件处理程序名称和事件处理程序函数,事件都被添加到冒泡阶段;attachEvent方法内,this = window,相比Dom方法以添加事件相反顺序执行。 跨浏览器的事件处理程序 addHandler: function (element, type, handler) { if (element

微信小程序 template添加点击事件

这一生的挚爱 提交于 2020-01-23 02:44:48
介绍 template是微信小程序提供的模板,可以在模板中定义代码片段,然后在不同的地方调用。 简单使用 定义template 因为项目中可能会需要到不止一个template,所以最好新建一个文件夹来存放template相关的文件。注意这里只是单独的创建各个文件,并不是创建Page或者Component. 创建好之后的文件目录如图: 这里演示一个用template当列表的item,然后可以点击并获取到值。 然后开始写templates.wxml文件,这里面可以有多个template代码块,如代码所示: <!--列表页item --> <template name="template01"> <view class='item' bindtap='onclick' data-item='{{item}}'> {{item}} </view> </template> <template name="template02"> <view> this is template02 and nothing to do </view> </template> 可以看出template和普通的标签定义差不多,但是每个template必须为它设置name,因为在使用的时候可以是根据这个name的值来找到对应关系的。 然后开始布局,templates.wxss文件代码: .item{

看到一段代码,留个脚印

柔情痞子 提交于 2020-01-22 22:15:05
此代码是向一个frame添加一个按扭 --=========================================================================== -- 添加按扭 --=========================================================================== local MyButton = CreateFrame('Button') MyButton:SetScript('OnEvent', function(self, event, ...) self[event](self, event, ...) end) local function OnClick() ReloadUI() PlaySound("igMainMenuOption") end local function OnEnter(self) GameTooltip:SetOwner(self, 'ANCHOR_RIGHT') GameTooltip:AddLine("^_^") GameTooltip:Show() end function ReLoad_OnEnter(self) GameTooltip:SetOwner(self, 'ANCHOR_RIGHT') GameTooltip:AddLine(

事件委托

試著忘記壹切 提交于 2020-01-22 17:02:08
普通事件绑定 < ul > < li > 1 < / li > < li > 2 < / li > < / ul > < script > var list = document . getElementsByTagName ( "li" ) ; for ( var i = 0 ; i < list . length ; i ++ ) { list [ i ] . index = i ; list [ i ] . onclick = function ( ) { console . log ( this . index + 1 ) ; } } < / script > 事件委托 事件委托的原理:事件冒泡 var ul_list = document . getElementsByTagName ( "ul" ) [ 0 ] ; ul_list . addEventListener ( 'click' , function ( event ) { // console.log(event.target); // 给多个元素同时 绑定相同的功能 // var s = event.target; // var s = event.target.id; var s = event . target . className ; // console.log(s.nodeName); 节点名称

进程-同步互斥机制

浪子不回头ぞ 提交于 2020-01-22 02:49:15
【同步互斥】 1.同步互斥机制 目的: 解决对共有资源操作产生的争夺 临界资源: 多个进程或线程都能够操作的资源(例如终端) 临界区: 操作临界资源的代码段 同步: 同步是一种合作关系,为完成某个任务多进程和多线程之间形成一种协调, 按照约定或条件依次执行操作临界资源,相互告知资源使用情况。 (这种协调可能是因为阻塞关系达成的) 互斥: 互斥是一种制约关系,当一个进程或者线程进入临界区会进行加锁的操作。 此时其他进程(线程)再企图使用临界资源时就会阻塞,直到资源被释放才能使用。 2.同步互斥方法: Event 事件: from multiprocessing import Event 创建事件对象: e = Event() 事件阻塞: e = wait([timeout]) 事件设置: e.set() 对事件对象进行设置,此时wait判断如果事件被set则结束阻塞 e处于设置状态,e.wait()不在阻塞 事件清除: e.clear() e处于未设置状态,e.wait()阻塞 事件判断: e.is_set() 判断e的当前状态.检测对象是否被设置,设置返回True,事件阻塞为False 示例1: # event_test.py from multiprocessing import Event # 创建事件对象 e = Event ( ) print ( e . is_set (

javaScript系列 [28]

試著忘記壹切 提交于 2020-01-21 23:15:47
本文介绍JavaScript事件相关的知识点,主要包括事件流、事件处理程序、事件对象(event)以及常见事件类型和事件委托等相关内容。 在网页开发涉及的三种基础技术( HTML CSS JavaScript )中,JavaScript主要负责处理页面的 行为 ,而所谓行为大多指的是 交互行为 。 JavaScript和HTML间的交互通过事件来实现 ,换句话来说事件其实就是页面文档或浏览器窗口中发生的特定交互,譬如页面中的按钮标签被点击我们称之为按钮的点击( click )事件,类似的还有页面加载事件、鼠标的移入移除等等。 通常,我们在开发中对事件的操作(处理)主要由两部分组成,即 事件注册 和 事件函数 。我们总是需要先通过特定的方式来给标签添加(注册)事件监听,当事件发生时事件函数将得以调用执行。本文以 能够清晰明确的把事件的传递过程、事件注册的方式、事件对象以及常见的事件类型讲解清楚 为目标。 事件流 事件流 描述的其实是事件内在的传递过程(顺序)。 我们的开发经验是,当我们给某些标签注册(绑定)了事件后,该事件被触发就会执行对应的事件处理函数。这似乎是一个顺理成章的经验,但事件到底是如何传递的呢 ?我们知道在网页中有很多的Node节点,而Node节点之间是复杂的树结构,事件在接收、传递和处理的时候,是按照 目标节点->上层节点->根节点 还是 根节点->下层节点-