关于性能优化的那点事——BigRender首屏渲染优化

2016-08-29
阅读 11 分钟
5.5k
一个庞大的页面, 有时我们并不会滚动去看下面的内容, 这样就造成了非首屏部分的渲染, 这些无用的渲染不仅包括图片还包括其他DOM元素, 甚至一些js/css(某些js/css根据模块请求,比如ajax), 理论上每增加一个DOM, 都会增加渲染的时间, 并且影响着页面打开的加载速度.这时就需要一种办法使得html, js, css实现按需加载.

关于性能优化的那点事——函数防抖

2016-08-27
阅读 2 分钟
5k
假设网站有个搜索框, 用户输入文本我们会自动联想匹配出一些结果供用户选择,我们可能首先想到的做法就是监听keypress事件, 然后异步查询结果. 但是如果用户快速的输入了一串字符, 假设是10个字符, 那么就会在瞬间触发10次请求, 这无疑不是我们想要的, 我们想要的是用户停止输入的时候才去触发查询的请求.

关于性能优化的那点事——函数节流

2016-08-26
阅读 3 分钟
3.4k
javascript中的函数大多数情况下都是由用户主动调用触发的, 除非是函数本身的实现不合理, 否则一般不会遇到跟性能相关的问题,但在少数情况下, 函数的触发不是由用户直接控制的. 在这些场景下, 函数可能被非常频繁调用, 而造成大的性能问题.

设计模式——单例模式

2016-08-25
阅读 2 分钟
2.5k
上面使用一个变量result来保存fn的计算结果. result变量因为身在闭包中, 它永远不会被销毁. 在将来的请求中, 如果result已经赋值, 那么它将返回这个值.

设计模式——原型模式

2016-08-24
阅读 1 分钟
2.2k
用原型实例指向创建对象的类, 使用于创建新的对象的类共享原型对象的属性及方法. 当然javascript是基于原型链实现对象之间的继承,这种继承是基于一种对属性或者方法的共享, 而不是对属性和方法的复制.

设计模式——建造者模式

2016-08-23
阅读 2 分钟
2k
将一个复杂的对象构建层与其表示层相互分离, 同样的构建过程中可采用不同的表示. 建造者模式与工厂模式的不同之处在于, 它更多关心创建对象的过程, 甚至于每一个创建对象的细节.

设计模式——工厂模式

2016-08-22
阅读 6 分钟
3.6k
在出现多个类的时候, 每次创建需要找到对应的类往往比较麻烦, 这时候通常使用一个函数进行封装来创建所需要的对象,这样就无需关注创建这些对象到底依赖哪些基类了, 只要知道有这个函数就可以了, 通常这个函数被称为工厂函数,这种模式叫简单工厂模式

一起学习面向对象——多态

2016-08-19
阅读 1 分钟
1.9k
理解多态 多态是指一个引用(类型)在不同情况下的多种状态。即指同一个方法多种调用方式. 也可以理解成:多态是指通过指向父类的引用,来调用在不同子类中实现的方法。 demo: 使用普通函数实现: {代码...} 使用类的形式实现: {代码...}

一起学习面向对象——继承

2016-08-18
阅读 6 分钟
1.9k
类的原型对象的作用就是为类的原型添加公有属性和公有方法,但类不能直接访问这些属性和方法,必须通过原型prototype来访问。而我们实例化一个父类的时候,新创建的对象复制了父类的构造函数内的属性与方法,并且将原型__proto__指向了父类的原型对象,这样就拥有了父类原型对象上的属性和方法,并且这个新创建的对象可...

一起学习面向对象——封装

2016-08-17
阅读 5 分钟
2k
在构造函数内部通过this(用于指向当前对象)变量添加属性或方法,此处定义的属性和方法都是为对象自身所拥有,每次通过类创建实例时, this指向的属性都会得到相应的创建.

webpack学习笔记

2015-07-31
阅读 12 分钟
6.6k
文件名带上hash值后, 这个值在每次编译的时候都会发生变化,都需要在 html 文件里手动修改引用的文件名,这种重复工作很琐碎且容易出错, 这里我们可以使用 html-webpack-plugin 来帮我们自动处理这件事情, 用来简化创建服务于webpackbundle的HTML文件