前端浏览器缓存

我们为什么要缓存

  • 缓存可以减少用户的等待时间,提升用户的体验。

  • 减少网络带宽消耗

    对于网站运营者和用户,带宽都代表着成本,过多的带宽消耗,都需要支付额外的费用。如果可以使用缓存,只会产生极小的网络流量,这将有效的降低运营成本

阅读更多
http1.0,http1.1,http2.0之间的区别
HTTP 的发展 1991:http/0.9 1996: http/1.0 1999: http/1.1 2015: http/2 HTTP1.0HTTP1.0 最大的一个特点就是:无连接 HTTP1.0浏览器与服务器只保持短暂的连接,每次请求都需要建立一个TCP连接。服务器响应完成,得到客户端的 ...
阅读更多
git操作整理

获得Git项目的仓库有两种方式:

  1. 在现有的目录下面通过导入所有的文件夹来创建Git仓库

  2. 从已有的仓库克隆一个新新的镜像仓库来使用

阅读更多
window.open被浏览器拦截的解决方案

存在的现象

最近在做一个需求,遇到了使用window.open()跳转到一个新的页面会被浏览器拦截的情况。虽然在开发环境。我们会手动放行。但是对于客户来说,不能要求用户都来通过拦截。而且在出现拦截的时候。很多小白客户根本不知道发生了啥,以为系统出来安全性问题。

此外,还发现:当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就出现被拦截的表现了

阅读更多
http协议详解
在讲http协议之前, 需要先了解一下基础的计算机网络相关知识。 计算机网络体系结构计算机网络体系结构是计算机网络的各层 和 其协议的集合。 在计算机网络的基本概念中,分层次的体系结构是最基本的。 分层相互通信的两个计算机系统必须高度协调工作才行,而这种协调是相当复杂的。为了设计出这样复杂的计算机网 ...
阅读更多
你不知道的css技巧

1.用 :*-Of-Type 选择元素

不兼容IE8

假如我们有这样的htm结构

1
2
3
4
5
6
<p>11111</p>
<p>22222</p>
<p>33333</p>
<p>44444</p>
<p>55555</p>
<p>66666</p>
阅读更多
JavaScript运行机制

JavaScript运行机制

我们知道JavaScript执行的时候是单线程的。但是Javascript为什么是单线程的呢, JavaScript为什么需要异步呢,JavaScript又如何靠单线程实现异步的呢?我们又为什么要掌握JavaScript的单线程。

阅读更多
《javascript设计模式》读书笔记四:对象创建模式

JavaScript 是一种简洁明了的语言,其中并没有在其他语言经常使用的一些特殊语法的特征:命名空间,模块,包,私有属性,以及静态成员等。让我们用JavaScript来实现。

阅读更多
《javascript设计模式》读书笔记三:函数

一. 函数的特点

函数是第一类对象

函数就是对象,其表现是:

  • 函数可以在运行时动态创建,也可以在程序执行过程中创建

  • 函数可以分配给变量,可以将它们的引用复制到其他变量,可以被扩展,此外,除了极少数特殊情况外,函数也可以被删除。

阅读更多
Vue中如何检测数组的变化?

之前学习了关于Vue的响应式数据的原理: Vue 的双向绑定原理及手把手实现。它的原理其实就是通过Object.defineProperty控制 gettersetter结合发布订阅者模式完成响应式设计的,

1. 但是这种数据劫持对数组有什么影响呢?

这种递归方式无论对于数组还是对象都进行了观测。但是我们的数组有成千上万个元素,每一个元素下标都添加getset.这样对于性能来说代价太大了。那么Object.property只用来劫持对象。

2. Object.property这种劫持方式有什么缺点呢?

对于新增的或者删除的属性是无法被检测到的,只有对象本身存在的属性才会被劫持。

对于数组来说也是一样,新增加的元素和删除的元素无法对他们的下表进行劫持。

阅读更多