同事新上线了一个日志 sdk。运行一段时间后导致线上服务器打开太多文件而拒绝服务。
原因很简单每一个日志实例化,都持有了一个写文件的流,写完没有关闭。
随着业务运行导致服务器崩溃。
由于浏览器的同源策略,跨域请求需要做额外的配置才能工作。
CORS 是一个通用的解决方案,唯一缺点是低版本浏览器(< IE 9)不支持。低版本 IE 支持一个私有的 XDomainRequest,是个鸡肋 —— 如不能带 cookie。
如果需要兼容 IE 9 以下, 需要另外一种方案来实现跨域请求。xdomian 便是其中一种。
简而言之。辅助浏览器用来做资源优化的 指令
。
为什么需要这些 指令
呢?
浏览器已经长大成人了,已经懂得如何做优化了。但是具体到每个应用,各有不同,要具体方案具体分析。
这就是指令的目的。
一些常见的指令:
这些指令通常写在 head 标签的 meta 里, 形式如下:
1 | <link rel="xxx" href="yyy"> |
但也会有些不同。下面做详细介绍。
package.json 不能够保证每次安装的依赖的唯一性。 举例来说:
A 模块:1
2
3
4
5
6
7{
"name": "A",
"version": "0.1.0",
"dependencies": {
"B": "<0.1.0"
}
}
依赖版本号小于 0.1.0 的 B 模块。1
2
3
4
5
6
7{
"name": "B",
"version": "0.0.1",
"dependencies": {
"C": "<0.1.0"
}
}
我在学习尾调用优化的过程中,有两个误解:
第一个是,我们一谈优化,经常说时间的优化。但是尾调用优化却主要是指空间的优化。
第二个是,既然尾调用优化是在 es6 中支持的,那么可能又要学新的语法了。然而,尾调用优化并不需要新的语法,而只是是在解释器(如V8)中做的改进。尾调用是一直存在的,但是尾调用优化是在支持 es6 的解释器里添加的。
澄清了这两个问题之后,我们先来看看尾调用是什么。