Origin of Ray

一起探索互联网的秘密

这篇文章讲的是异步编程语法的发展过程,异步方法的调用是如何逐渐变成同步语法的。

异步编程的方法,大概有下面四种

  • 回调函数
  • 事件监听
  • 发布/订阅
  • Promise 对象

ECMAScript 6 (简称 ES6 )作为下一代 JavaScript 语言,将 JavaScript 异步编程带入了一个全新的阶段。这组系列文章的主题,就是介绍更强大、更完善的 ES6 异步编程方法。

新方法比较抽象,初学时,我常常感到费解,直到很久以后才想通,异步编程的语法目标,就是怎样让它更像同步编程。

这边文章讲的是这几种语法之间的关联,如果阅读过程中对于任意一个语法有深入理解的需求,可以去看一下阮一峰老师的ES6语法入门

阅读全文 »

nodejs的两大特性,即异步IO事件驱动。通过对***《深入浅出nodejs》***和几篇博客的阅读以后,有了大致的了解,总结一下。

注意本文的内容基于node11以上。

同步与异步,阻塞与非阻塞

“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。
1.同步与异步
同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)
所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。
换句话说,就是由调用者主动等待这个调用的结果。

而异步则是相反,调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用*发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。

阅读全文 »

最近要使用到Docker,就在晚上找了几篇入门级别的博客,边总结,边实践。

阅读全文 »

各类实用的 Chrome 扩展是不少人选择 Chrome 浏览器的重要原因,经过多年发展,Chrome 的扩展种类已经非常丰富,除了那些「即装即用」的小工具之外,也有很多被誉为「神器」的强大扩展程序。

阅读全文 »

浏览器资源加载过程

首先抛出两个问题:

  • 浏览器如何知道应该加载哪些资源?
  • 浏览器是什么顺序来加载这些资源?

当浏览器截获到一个页面,将会按顺序做下面四件事

  1. 首先会将所有需要加载的资源进行分类。
  2. 然后根据浏览器相关的安全策略,来决定资源的加载权限。
  3. 接着对各个资源的加载优先级进行计算和排序。
  4. 最后一步,根据加载优先级顺序来加载资源。
阅读全文 »

最近遇到了一个奇怪的题目,实现以下效果:

sum(2, 3).result = 5;

sum(2, 3)(4, 5).result = 14;

sum(1, 2)(3).result = 6;

这个题目看起来很奇怪,其实就是个函数柯里化加上个脑筋急转弯,这里记录一下这个题目的思路,如果不懂柯里化,看完对柯里化的介绍之后可以先自己想一下怎么实现这个效果,反正作者想了半个小时才缓过神来原来竟然如此简单,归根结底还是理论充足,但是见识少了。

阅读全文 »

基本概念

在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……

阅读全文 »

谈起VPN我们很多人的第一反应都是翻墙,这其实也是VPN一个比较有名的原因。VPN其实会为你直接分配一个外网的IP,只是这个IP只在这条专线的另一头的代理服务器上有效,VPN的优点和用法并不在于翻墙,而是数据的加密,而且由于其流量特征明显,它用来翻墙的表现其实也不是很好。SS等代理则是帮你进行请求的转发,前提是你能找到一台在墙内能访问的服务器,并且该服务器愿意帮你转发流量。我们就从翻墙开始讲VPN到底是什么。它和代理有什么区别。

阅读全文 »

Token是什么

究竟什么才算是Token,我一直没有找到比较好的定义,但是回过头来看一下它的翻译,才明白,原来名字就是定义了,Token就是令牌。

那么什么是令牌呢?

阅读全文 »

HTTPS协议是HTTP + SSL/TLS组合而成的,而HTTP是用来从万维网服务器获取信息的协议,所以我们就从万维网开始讲起。

万维网与HTTP

万维网(WWW)并非某种特殊的计算机网络。万维网是一个大规模的,联机式的信息储藏所,英文简称web。万维网用链接的方式可以非常方便地从互联网上的一个站点访问另一个站点。

每一个万维网站点都存放了许多文档。在这些文档中有一些地方的文字是用特殊方式显示的,当我们鼠标移动到这些地方的时候,鼠标的箭头就变成了一只手的形状,这就表明这里有一个链接。如果我们点击这些链接,我们就可以从这个文档链接到可能相隔很远的另一个文档。

正是由于互联网的出现,使得互联网从少数计算机专家使用变成了普通百姓也能使用。

我们平时从浏览器打开网页就是从万维网服务器获取信息,使用的是HTTP协议。但是我们去玩LOL的时候,客户端与服务器之间的交流就可以不是HTTP协议了。

万维网是一个分布式的超媒体,他是超文本系统的扩展、所谓的超文本就是指包含连接向其他文档的链接的文本。一个超文本由多个信息源链接而成,而这些信息分布在世界各地。

万维网的客户端程序就是浏览器,万维网文档存储的主机就是万维网服务器,运行万维网服务器程序。客户程序向服务器程序发送请求,服务器程序就向客户端程序发送客户所需的万维网文档。在浏览器中显示的万维网文档就称为页面。

阅读全文 »
0%