目的:为了重用,提高开发效率和代码质量 注意:低耦合,单一职责,可复用性,可维护性
常用操作:
多台服务器共同协作,不让其中某一台或几台超额工作,发挥服务器的最大作用
内容分发网络,基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
定义:程序中己动态分配的堆内存由于某种原因程序未释放或无法释放引发的各种问题 js中可能出现的内存泄漏情况 结果:变慢,崩溃,延迟大等 原因:
避免策略:
ES6、7 代码输入 -> babylon 进行解析 -> 得到 AST(抽象语法树)-> plugin 用 babel-traverse 对 AST 树进行遍历转译 ->得到新的 AST 树->用 babel-generator 通过 AST 树生成 ES5 代码
特性:Promise 对象的错误具有冒泡性质,会一直向后传递,直到被捕获为止,也即是说,错误总会被下一个 catch 语句捕获
三要素: document.createEvent() event.initEvent() element.dispatchEvent()
demo:
(en:自定义事件名称,fn:事件处理函数,addEvent:为DOM元素添加自定义事件,triggerEvent:触发自定义事件)
window.onload = function(){
var demo = document.getElementById("demo");
demo.addEvent("test",function(){console.log("handler1")});
demo.addEvent("test",function(){console.log("handler2")});
demo.onclick = function(){
this.triggerEvent("test");
}
}
Element.prototype.addEvent = function(en,fn){
this.pools = this.pools || {};
if(en in this.pools){
this.pools[en].push(fn);
}else{
this.pools[en] = [];
this.pools[en].push(fn);
}
}
Element.prototype.triggerEvent = function(en){
if(en in this.pools){
var fns = this.pools[en];
for(var i=0,il=fns.length;i<il;i++){
fns[i]();
}
}else{
return;
}
}

