兼容IE8
1 | // time格式为 '2018-08-01或2018/08/01或2018/8/1' |
兼容现代浏览器
1 | // time格式为 '2018-08-01或2018/08/01或2018/8/1' |
兼容IE8
1 | // time格式为 '2018-08-01或2018/08/01或2018/8/1' |
兼容现代浏览器
1 | // time格式为 '2018-08-01或2018/08/01或2018/8/1' |
浏览器中某些计算和处理要比其他的昂贵的多。例如,DOM操作比起非DOM交互需要更多的内存和cpu时间。连续尝试进行过多的DOM相关操作可能导致浏览器挂起甚至崩溃。尤其是IE中使用onresize事件处理程序的时候容易发生,当调整浏览器大小时,该事件便会频繁触发。在onresize事件处理程序内部如果尝试进行DOM操作,其高频率的更改可能会让浏览器崩溃。为了绕开这个问题,你可以使用定时器对该函数进行节流。
函数节流背后的基本思想是指,某些代码不可以在没有间断的情况连续重复进行。第一次调用函数,创建一个定时器,在指定的时间间隔之后运行代码。当第二次调用该函数时,它将清除前一次的定时器并设置另一个。如果前一个定时器已经执行过了,这个操作就没有任何意义。然而,如果前一个定时器尚未执行,其实就是将其替换成一个新的计时器。目的是只有在执行函数的请求停止了一段时间之后才执行。
1 | module.exports = { |
1 | <ul id="members"> |
bind()
方法直接在DOM元素中注册事件类型和事件处理函数。虽然它对浏览器的兼容性很好,但是却有很大的性能问题。
1 | $("#members li a").bind( "click", function(e) { |
bind()
方法会匹配所有符合条件的元素附加上事件处理程序,这样做很浪费时间,因为绑定的都是同一个事件处理函数。类似于在原生JS中给每个<li>
绑定onclick事件。
在使用vue-resource时,如果想要调用一个第三方的api,往往直接调用是不行的。控制台会提示No Access To …,翻译成中文意思就是请求的资源不允许跨域。
那么有什么办法来调用呢?笔者在网上找到了两种方法,原理基本都是代理转发:
如果你是使用vue-cli来构建的模板,进入config/index.js
,修改proxyTable为:
1 | proxyTable: { |
作者:旗smile
原文地址:http://blog.csdn.net/u014346301/article/details/52204967
ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说明对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。正因为这样,我们可以把ECMAScript的对象想象成散列表:无非就是一组名对值,其中值可以是数据或函数。
创建自定义对象最简单的方式就是创建一个Object的实例,然后再为他添加属性和方法,如下所示:
1 | var person = new Object(); |
上面的例子创建了一个名为person的对象,并为他添加了三个属性和一个方法。其中sayName()
方法用于显示name属性,this.name
将被解析为person.name
,早期的开发人员经常使用这个模式来创建对象,后来对象字面量的方法成了创建对象的首选模式,上面的例子用对象字面量的语法可以写成如下这样: