flyyang's Blog


  • 首页

  • 归档

  • 标签

  • 搜索

Too many open files in system 问题排查记录

发表于 2018-12-28
字数统计 491 | 阅读时长 1

同事新上线了一个日志 sdk。运行一段时间后导致线上服务器打开太多文件而拒绝服务。

原因很简单每一个日志实例化,都持有了一个写文件的流,写完没有关闭。

随着业务运行导致服务器崩溃。

阅读全文 »

xdomain.js 实现原理分析

发表于 2018-12-21
字数统计 880 | 阅读时长 3

xdomain 出现的背景

由于浏览器的同源策略,跨域请求需要做额外的配置才能工作。

CORS 是一个通用的解决方案,唯一缺点是低版本浏览器(< IE 9)不支持。低版本 IE 支持一个私有的 XDomainRequest,是个鸡肋 —— 如不能带 cookie。

image

如果需要兼容 IE 9 以下, 需要另外一种方案来实现跨域请求。xdomian 便是其中一种。

阅读全文 »

Resource Hint 介绍

发表于 2018-12-13
字数统计 876 | 阅读时长 3

Resource Hint 是什么?

简而言之。辅助浏览器用来做资源优化的 指令。

为什么需要这些 指令 呢?

浏览器已经长大成人了,已经懂得如何做优化了。但是具体到每个应用,各有不同,要具体方案具体分析。
这就是指令的目的。

一些常见的指令:

  • dns-prefetch
  • preconnect
  • prefetch
  • preload
  • prerender

这些指令通常写在 head 标签的 meta 里, 形式如下:

1
<link rel="xxx" href="yyy">

但也会有些不同。下面做详细介绍。

阅读全文 »

nodejs 如何保证安装 node_modules 的一致性?

发表于 2017-12-25
字数统计 777 | 阅读时长 3

package.json 的困境

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"
}
}

阅读全文 »

JavaScript 中的尾调用优化(tail call optimization)

发表于 2017-07-24
字数统计 848 | 阅读时长 3

JavaScript 中的尾调用优化(tail call optimization)

我在学习尾调用优化的过程中,有两个误解:

第一个是,我们一谈优化,经常说时间的优化。但是尾调用优化却主要是指空间的优化。

第二个是,既然尾调用优化是在 es6 中支持的,那么可能又要学新的语法了。然而,尾调用优化并不需要新的语法,而只是是在解释器(如V8)中做的改进。尾调用是一直存在的,但是尾调用优化是在支持 es6 的解释器里添加的。

澄清了这两个问题之后,我们先来看看尾调用是什么。

阅读全文 »
1234…6

26 日志
22 标签
GitHub Weibo 豆瓣 知乎
© 2015 - 2019
由 Hexo 强力驱动
主题 - NexT.Pisces