我们为什么要缓存
缓存可以减少用户的等待时间,提升用户的体验。
减少网络带宽消耗
对于网站运营者和用户,带宽都代表着成本,过多的带宽消耗,都需要支付额外的费用。如果可以使用缓存,只会产生极小的网络流量,这将有效的降低运营成本
缓存可以减少用户的等待时间,提升用户的体验。
减少网络带宽消耗
对于网站运营者和用户,带宽都代表着成本,过多的带宽消耗,都需要支付额外的费用。如果可以使用缓存,只会产生极小的网络流量,这将有效的降低运营成本
最近在做一个需求,遇到了使用window.open()跳转到一个新的页面会被浏览器拦截的情况。虽然在开发环境。我们会手动放行。但是对于客户来说,不能要求用户都来通过拦截。而且在出现拦截的时候。很多小白客户根本不知道发生了啥,以为系统出来安全性问题。
此外,还发现:当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就出现被拦截的表现了。
不兼容IE8
假如我们有这样的htm结构
1 | <p>11111</p> |
我们知道JavaScript执行的时候是单线程的。但是Javascript为什么是单线程的呢, JavaScript为什么需要异步呢,JavaScript又如何靠单线程实现异步的呢?我们又为什么要掌握JavaScript的单线程。
JavaScript 是一种简洁明了的语言,其中并没有在其他语言经常使用的一些特殊语法的特征:命名空间,模块,包,私有属性,以及静态成员等。让我们用JavaScript来实现。
函数就是对象,其表现是:
函数可以在运行时动态创建,也可以在程序执行过程中创建
函数可以分配给变量,可以将它们的引用复制到其他变量,可以被扩展,此外,除了极少数特殊情况外,函数也可以被删除。
之前学习了关于Vue
的响应式数据的原理: Vue 的双向绑定原理及手把手实现。它的原理其实就是通过Object.defineProperty
控制 getter
和setter
结合发布订阅者模式完成响应式设计的,
1. 但是这种数据劫持对数组有什么影响呢?
这种递归方式无论对于数组还是对象都进行了观测。但是我们的数组有成千上万个元素,每一个元素下标都添加get
和set
.这样对于性能来说代价太大了。那么Object.property
只用来劫持对象。
2. Object.property这种劫持方式有什么缺点呢?
对于新增的或者删除的属性是无法被检测到的,只有对象本身存在的属性才会被劫持。
对于数组来说也是一样,新增加的元素和删除的元素无法对他们的下表进行劫持。