-
css3动画事件
css3动画事件包括transitionend事件和animationend事件,transitionend和animationend是w3c标准的写法,而多数浏览器在w3c标准前已经有了对应的私有写法(多数浏览器同时支持私有和标准写法,部分旧版浏览器只支持私有写法)。当浏览器同时支持标准和私有写法时,如果某个元素同时监听了私有写法事件和标准写法事件,则浏览器将只执行标准写法的回调。当然,也可以只监听标准写法事件或者私有写法事件,前提是你明确知道事件是否被浏览器支持,否则应该做兼容示例...…
-
sublime 常用快捷键
常用命令选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。ctrl+shift+d 如果你已经选中了文本,它会复制你的选中项。否则,把光标放在行上,会复制整行。Alt+- 光标回到上一次的位置,可连续使用Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。Ctrl+L 选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。Ctrl+Shift+L 先选中多行,再按下快捷键,会...…
-
Javascript设计模式(责任链模式)
在责任链模式中:发送者知道链中的第一个接受者;它向这个接受者发出请求,每一个接受者都对请求进行分析,要么处理它,要么往下传递;每一个接受者知道的其他对象只有一个,即它的下家对象;如果没有任何接受者处理请求,那么请求将从链上离开,不同的实现对此有不同的反应。实例://任务发送者var Assign = function(task){ this.task = task ;};//任务接受者var Reciever = function(name,cando){ this.name = na...…
-
Javascript设计模式(命令模式)
“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)。实例:<!DOCTYPE html><html><head> <title></title> <style type="...…
-
Javascript设计模式(观察者模式与发布订阅模式)
观察者和发布订阅模式设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。此种模式通常被用来实现事件处理系统。观察者模式实例://被观察者(主体对象)function Observable(){ this.obs = [];//存储观察者列表}Observable.prototype.attach = function(ob){ this.obs.push(ob); return this;}Observab...…
-
Javascript设计模式(代理模式)
代理模式的目的就是为了节制(控制)对本体对象的访问,代理对象和本体对象都实现了相同的接口。代理模式可以用来延迟对象的初始化,增强加载速度。实例:假设有一个书店对象,其有很多业务,加载这个书店对象需要消耗大量内存,如果程序一开始就初始化这个对象,可能会耗费珍贵的加载时间,而且真正的购买动作往往是用户选购很长时间后才发生,这时我们就可以实现一个代理对象来完成业务逻辑,等到业务正真发生时再去初始化书店对象。var Book = function(name,year,type,num){ th...…
-
Javascript设计模式(享元模式)
享元模式使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。实例:假设有一个书店,其有一个固定的印刷厂,书店卖的书有书名,年份,类别,购买者4个属性,其中卖的大多数书会有相同的书名、年份和类别属性,只有购买者属性不一样,这时就可以将书名、年份和类别属性放在外部的数据结构。var Book = functio...…
-
git常用命令
git是一个分布式的版本管理系统,没有服务端和客户端的概率,不过在团队协作中,通常会选一台客户端作为服务器,方便成员之间的push与pullgit 的结构git分为工作区,暂存区,版本库:工作区有一个隐藏目录.Git,这个不算工作区,而是 git 的版本库。其中有一个index的文件,其记录了暂存区的索引。注意:所有被跟踪的文件在暂存区都有相应的索引,当index中没有要提交的索引时,其和当前分支的历史记录所有得索引是一致的。分支只能操作被暂存区跟踪(track)了的文件。撤销操作gi...…
-
Javascript设计模式(装饰者模式)
装饰者模式可以在保证不改变原有对象的基础上,去扩展一些原有的方法var BH = { extend:function(me,superConstructor){ var F = function(){}; F.prototype = superConstructor.prototype; me.prototype = new F(); me.prototype.constructor = me; me.supe...…
-
Javascript设计模式(适配器模式)
在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类(对象)的接口适配成用户所期待的。一个适配允许通常因为接口(对象)不兼容而不能在一起工作的类(对象)工作在一起,做法是将类(对象)自己的接口包裹在一个已存在的类(对象)中。从表面看,适配器模式很像门面模式。她们都要对别的对象进行包装并改变其呈现的接口。二者的区别在于她们如何改变接口: 门面元素展现的是一个简化的接口,她并不提供额外的选择 适配器则要把一个接口转换为另一个接口,她并不滤除某些能力,也不会简化接口示例:假设...…