event

轻量级网络库libevent初探

一曲冷凌霜 提交于 2019-12-23 03:48:09
  本文是关于libevent库第一篇博文,主要由例子来说明如何利用该库。后续博文再深入研究该库原理。 libevent库简介   就如 libevent官网 上所写的“libevent - an event notification library”,libevent就是一个基于事件通知机制的库,支持/dev/poll、kqueue、event ports、select、poll和epoll事件机制,也因此它是一个跨操作系统的库(支持Linux、*BSD、Mac OS X、Solaris、Windows等)。目前应用该库的有Chromium、Memcached、NTP、tmux等应用。   libevent 库实际上没有更换select()、poll()或其他机制的基础,而是使用对于每个平台最高效的高性能解决方案,在其实现外加上一个包装器。   为了实际处理每个请求,libevent 库提供一种事件机制,它作为底层网络后端的包装器。事件系统让为连接添加处理函数变得非常简便,同时降低了底层 I/O 复杂性。这是 libevent 系统的核心。   libevent 库的其他组件提供其他功能,包括缓冲的事件系统(用于缓冲发送到客户端/从客户端接收的数据)以及 HTTP、DNS 和 RPC 系统的核心实现。   另外,libevent库非常轻量级,这让我们学习它的源码难度低了不少

jquery插件系列之 - Slider滑块

点点圈 提交于 2019-12-22 15:44:04
概述 滑动条是一种简单的设置一定范围内参数的插件。 官方示例地址:http://jqueryui.com/demos/slider/ ·参数(参数名 : 参数类型 : 默认名称) animate : Boolean : false 设置是否在拖动滑块时执行动画效果。 初始:$('.selector').slider({ animate: true }); 获取:var animate = $('.selector').slider('option', 'animate'); 设置:$('.selector').slider('option', 'animate', true); max : Number : 100 设置滑动条的最大值。 初始:$('.selector').slider({ max: 7 }); 获取:var max = $('.selector').slider('option', 'max'); 设置:$('.selector').slider('option', 'max', 7); min : Number : 0 设置滑动条的最小值。 初始:$('.selector').slider({ min: -7 }); 获取:var min = $('.selector').slider('option', 'min'); 设置:$('.selector')

jquery键盘事件总结

与世无争的帅哥 提交于 2019-12-22 09:02:06
在工作中在发现同事在写输入密码按键的相关js效果时,发现自己对于这块很是不了解,这几天特地了解了一下,进行以下总结: 一、首先要知道键盘事件的几个属性: 1、keydown():在键盘按下时触发。 2、keyup():是按下键盘起来后的事件。 3、keypress():在敲击按键时触发,我们可以理解为按下并抬起同一个按键。 二、获得键盘上对应的 ascII 码: //键码获取 $(document).keydown(function (event) { alert(event.keyCode); }); 上面例子中,event.keyCode 可以帮助我们获取到我们按下了键盘上的什么按键,它返回的就是 ascII 码,比如说上下左右键,分别是38,40,37,39; 三、案例1: 比如:小说网站中常见的按左右键来实现上一篇文章和下一篇文章; 按 ctrl+enter 实现表单提交(以此提高用户体验); 如果我们要实现 ctrl+enter 提交表单,可以这样: //键盘操作 $(document).keydown(function (event) { if (event.ctrlKey && event.keyCode == 13) { alert('Ctrl+Enter'); }; switch (event.keyCode) { case 37: alert('方向键-左');

Web开发 腾讯云-云函数(Java版) 低成本搭建轻量级服务器

旧巷老猫 提交于 2019-12-22 08:36:31
腾讯云是免费的, 但有额度, 貌似100万请求来着… 做个追剧更新爬虫什么的自用 还是可以的! 开始: 创建API key https://console.cloud.tencent.com/cam/capi (貌似不需要这一步,因为后面暂时用不到) 创建云函数 打开 https://console.cloud.tencent.com/scf/list?rid=8&ns=default 点创建云函数, 选java平台 打开IDEA 创建Gradle java工程 next next … finish 修改build.gradle 创建完成后 添加 sdk以及打包zip脚本, 等会要打包提交到服务器 repositories { mavenCentral ( ) } dependencies { testCompile group : 'junit' , name : 'junit' , version : '4.12' compile ( 'com.tencentcloudapi:scf-java-events:0.0.1' ) // compile fileTree(dir: 'jars', include: '*.jar') } apply plugin : 'java' task buildZip ( type : Zip ) { from compileJava from

使用JS监听键盘按下事件(keydown event)

守給你的承諾、 提交于 2019-12-22 07:28:06
1、监听全局键盘按下事件,例如监听全局回车事件 1  $(document).keydown(function(event){ 2    if(event.keyCode == 13){ 3      alert('你按下了Enter'); 4    } 5  }); 2、监听某个组件键盘按下事件,例如监听id为btn的button组件的回车按下事件 1  $("#btn").keydown(function(event){ 2    if(event.keyCode == 13){ 3      alert('你按下了Enter'); 4    } 5  }); 3、如果是要监听组合键,例如监听ctrl+c 1  $(document).keyup(function(event){ 2    if (event.ctrlKey && event.keyCode === 67){ 3      alert('你按下了CTRL+C'); 4    } 5  }); 4、详细keyCode值列表 来源: https://www.cnblogs.com/pangpanghuan/p/6423204.html

原生js--放大镜效果

偶尔善良 提交于 2019-12-22 03:54:55
  在淘宝上购物时,总会看到类似放大镜的效果。以下为原生js写的一个放大镜效果,其中肯定有很多不足,请大牛们指正,谢啦!   我的大体思路是:时时监听鼠标的坐标,当鼠标移动时,透明层随着鼠标移动,大图片相对透明层的移动而移动。不废话了,看代码。 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>放大镜</title> 6 <meta name="Keywords" content=""> 7 <meta name="author" content="@my_programmer"> 8 <style type="text/css"> 9 /*重置{*/ 10 html{color:#000;background:#fff;} 11 body,div{padding:0;margin:0;} 12 img{border:none;} 13 /*}重置*/ 14 .outer{width:200px;height:150px;position:relative;margin:20px auto;} 15 .inner{width:80px;height:60px;background:#f55;position:absolute;opacity:0.5;filter:alpha(opacity

mysql原理~binlog系列之~event浅谈

核能气质少年 提交于 2019-12-22 03:07:42
一 将具体分析binlog中的常用event 二 Row格式事件核心 ROW_LOG_EVENT+TABLE_MAP_EVENT+GTID_EVENT 三 event生效机制 在binlog cache中生效,然后刷新纪录写入binlog中 四 具体event 内容 0 FORMAT_DESCRIPTION_EVENT 1 PREVIOUS_GTIDS_LOG_EVENT 2 GTID_LOG_EVENT 3 TABLE_MAP_EVENT 4 ROW_LOG_EVENT 5 QUERY_EVENT () 6 XID_EVENT 7 ROTATE_EVNET 8 STOP_EVENT 五 详解 0 FORMAT_DESCRIPTION_EVENT 在binlog文件开头记载binlog相关的版本和其他一些信息 1 PREVIOUS_GTIDS_LOG_EVENT 记载之前所有binlog的GTID集合,作用是为了加快扫描速度 2 GTID_LOG_EVENT 记载关于GTID的相关信息,并且携带last commited和seq number 用来并行回放 3 QUERY_EVENT 在Row格式下只记录DDL原始语句 4 TABLE_MAP_EVENT 用于描述表的内部ID和结构定义。 核心 table_id , table_name schema name length col

HTML5中Js多线程编程

本秂侑毒 提交于 2019-12-22 00:53:33
Web Worker Web Worker 是 HTML5 提出的新标准,为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worker 线程完成计算任务,再把结果返回给主线程。这样的好处是,一些计算密集型或高延迟的任务,被 Worker 线程负担了,主线程(通常负责 UI 交互)就会很流畅,不会被阻塞或拖慢。 注意 1.性能上要注意 Worker 线程一旦新建成功,就会始终运行,不会被主线程上的活动(比如用户点击按钮、提交表单)打断。这样有利于随时响应主线程的通信。但是,这也造成了 Worker 比较耗费资源,不应该过度使用,而且一旦使用完毕,就应该关闭。 2.同源限制 分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。 3.DOM限制 Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用 document 、 window 、 parent 这些对象。但是,Worker 线程可以 navigator 对象和 location 对象。 4.通信联系 Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。 5.脚本限制 Worker 线程不能执行 alert()

11.Vue.js-事件处理器

浪子不回头ぞ 提交于 2019-12-21 07:11:41
事件监听可以使用 v-on 指令: <div id="app"> <button v-on:click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次。</p> </div> <script> new Vue({ el: '#app', data: { counter: 0 } }) </script>  v-on 可以接收一个定义的方法来调用 <div id="app"> <!-- `greet` 是在下面定义的方法名 --> <button v-on:click="greet">Greet</button> </div> <script> var app = new Vue({ el: '#app', data: { name: 'Vue.js' }, // 在 `methods` 对象中定义方法 methods: { greet: function (event) { // `this` 在方法里指当前 Vue 实例 alert('Hello ' + this.name + '!') // `event` 是原生 DOM 事件 if (event) { alert(event.target.tagName) } } } }) // 也可以用 JavaScript 直接调用方法 app.greet() // ->

HTML5 拖放API

╄→尐↘猪︶ㄣ 提交于 2019-12-21 04:51:24
1、设置元素可拖放(draggable: true) <img draggable='true' id='source'/> 2、拖动什么ondragstart setData var source = document.getElementById('source'); source.addEventListioner('dragstart', function (event) { event.dataTransfer.setData('Text', event.target.id) }, false) // event.dataTransfer对象的setData方法可以给拖放的元素添加数据 // setData() 参数1:要添加的内容的MIME Type 参数2:MIME Type对应的数据 另外,对于链接、图片以及被选中的文字这些本来就可以拖动的元素,在拖动的时候会自动关联数据,对于链接关联的数据就是链接,对于图片就关联图片,对于选中的文字关联的就是文字了。 3、拖动到哪儿 ondragover 默认情况下元素都是不接受放置拖拽的,绑定dragover和dragenter,取消这两个事件的默认行为 var target = document.getElementById('target'); target.addEventListener('dragover'