徐小夕 徐小夕
4年前
如何用不到200行代码写一款属于自己的js类库
前言JavaScript的核心是支持面向对象的,同时它也提供了强大灵活的OOP语言能力。本文将使用面向对象的方式,来教大家用原生js写出一个类似jQuery这样的类库。我们将会学到如下知识点:闭包:减少变量污染,缩短变量查找范围自执行函数在对象中的运用extend的实现原理如何实现跨浏览器的事件监听原型链与继承接下来我会对类库
Python进阶者 Python进阶者
3年前
一篇文章帮助你理解跑马灯的滚动原理
走马灯效果其实就是利用标签进行图片和文字滚动,设置的样式不一样,滚动的效果就不一样,实现“走马观花”的效果。一、滚动方式1\.普通滚动Document这里是您要填的内容1.1 文字碰到左边就会停止这里是您要填的内容1.2 文字碰到右边就会停止这里是您要填的内容2.图片滚动2.1 预设滚动图片滚动到右边界,自动再
徐小夕 徐小夕
4年前
《前端实战总结》之变量提升,函数声明提升及变量作用域详解
之所以会写这篇文章,主要源于笔者在重构老项目的时候发现了一个bug,导致某个插件不生效了,在review加searchcode加断点调试之后,发现了原因:一个同名的变量将插件方法给覆盖了,ohmyGad。正文1.变量是如何被覆盖的在一般情况下,js代码都是自上而下执行的,对于同一个变量,我们可以通过如下方式来修改:jsvara1;
Easter79 Easter79
3年前
TiKV 源码解析系列文章(十七)raftstore 概览
第一作者:李建俊,第二作者:杨哲轩,王聪TiKV作为一个分布式KV数据库,使用Raft算法来提供强一致性。Raft算法提供了单一group的一致性,但是单一group无法扩展和均衡。因此,TiKV采用了MultiRaft的方式基于Raft算法提供能兼顾一致性、扩展均衡的KV储存。下文以3.0版本代码为例,讲述raf
Wesley13 Wesley13
3年前
Java Nio
(1)NIOa)  Nio之所以比旧的io速度快是因为,nio使用的结构更接近于系统操作执行io的操作:通道和缓冲器.(2)如何操作nio读写数据Nio读写方式可以想象成:数据源和数据目的地是煤矿与煤场,通道想象成告诉公路,缓冲器是卡车,nio中的FileChannel是装卸煤用的工具,ByteBuffer是装煤用的卡车.在新的io中我们不对通道
Wesley13 Wesley13
3年前
Java并发新构件之Exchanger
    Exchanger是在两个任务之间交换对象的栅栏。当两个任务进入栅栏时,它们各自拥有一个对象,当它们离开时,它们都拥有对方的对象。Exchanger的典型应用场景是:一个任务在创建对象,而这些对象的生产代价很高,另一个任务在消费这些对象。通过这种方式,可以有更多的对象在被创建的同时被消费。    为了演示Exchanger类,我们将创建生产者
Stella981 Stella981
3年前
Codeigniter 3 拓展HMVC
在Codeiniter(以下统称CI)2.X版本中,我们就通过拓展核心类库实现了HMVC,但是同样的代码,拿到CI3中,就很有可能不好用了。拓展核心类库方式官方的文档对拓展核心类有详细的说明:你定义的类必须继承自父类。你的类名和文件名必须以MY\_开头。(这是可配置的,见下文)举个例子,要扩展原始的Input类,你需要新
Stella981 Stella981
3年前
RabbitMQ实战:可用性分析和实现
本系列是「RabbitMQ实战:高效部署分布式消息队列」书籍的总结笔记。上一篇介绍了各种场景下的最佳实践,大部分场景可以使用「发后即忘」的模式,不需要响应,如果需要响应,可以使用RabbitMQ的RPC模型。RabbitMQ以异步的方式解耦系统间的关系,调用者将业务请求发送到Rabbit服务器,就可以返回了,Rabbit会确保请求被正确处理,即使
Stella981 Stella981
3年前
Linux系统编程—有名管道
\\▋\\\\1.管道的概念\\管道,又名「无名管理」,或「匿名管道」,管道是一种非常基本,也是使用非常频繁的IPC方式。\\1.1管道本质\\\管道的本质也是一种文件,不过是伪文件,实际上是一块内核缓冲区,大小4K;\管道创建以后会产生两个文件描述符,一个是读端,另一个是写端;\管道里的数据只
面向缓解机制评估的自动化信息泄露方法
源自:软件学报作者:杨松涛陈凯翔王准张超摘要自动生成漏洞利用样本(AEG)已成为评估漏洞的最重要的方式之一,但现有方案在目标系统部署有漏洞缓解机制时受到很大阻碍.当前主流的操作系统默认部署多种漏洞缓解机制,包括数据执行保护(DEP)和地址空间布局随机化(ASLR)等,而现有AEG方案仍无法面对所有漏洞缓解情形.提出了一种自动化方案EoLe