摘要: 一、序言二、简介1、将要讨论的浏览器2、浏览器的主要功能3、浏览器的高层结构4、组件间的通信三、渲染引擎1、渲染引擎2、主流程3、主流程示例4、解析和构建DOM树4.1 解析概述4.1.1 文法Grammars4.1.2 解析器——词法分析器4.1.3 转换4.1.4 解析实例词汇表及语法的正式定义4.1.5 解析器类型4.1.6 自动化解析4.2 HTML解析4.2.1 HTML文法定义4.2.... 阅读全文
posted @ 2016-11-23 21:32 KiteRunner 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 一、非阻塞Connect对于Select时应注意的问题二、linux客户端socket非阻塞connect编程 一、非阻塞Connect对于Select时应注意的问题 对于面向连接的socket(SOCK_STREAM、SOCK_SEQPACKET),在读写数据之前必须建立连接。 建立连接的过程: 首先,服务器端socket必须在一个客户端知晓的地址(IP和端口号)进行监听,也就是说,创建... 阅读全文
posted @ 2016-09-16 11:14 KiteRunner 阅读(19718) 评论(1) 推荐(0) 编辑
摘要: Tair 是淘宝自己开发的一个分布式 key/value 存储引擎。tair 分为持久化和非持久化两种使用方式。非持久化的 tair 可以看成是一个分布式缓存。持久化的 tair 将数据存放于磁盘中。为了解决磁盘损坏导致数据丢失,tair 可以配置数据的备份数目,tair 自动将一份数据的不同备份放到不同的主机上,当有主机发生异常,无法正常提供服务的时候,其余的备份会继续提供服务。 Tair的总... 阅读全文
posted @ 2016-08-04 13:19 KiteRunner 阅读(2516) 评论(0) 推荐(0) 编辑
摘要: TCP是一个巨复杂的协议,因为它要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP详解 卷1:协议》(当然,你也可以去读一下RF... 阅读全文
posted @ 2014-12-01 14:27 KiteRunner 阅读(22165) 评论(4) 推荐(13) 编辑
摘要: 注:本节主要讨论最大堆(最小堆同理)。一、堆的概念 堆,又称二叉堆。同二叉查找树一样,堆也有两个性质,即结构性和堆序性。 1、结构性质: 堆是一棵被完全填满的二叉树,有可能的例外是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树(complete binary tree)。下图就是这样一个例子。 对于完全二叉树,有这样一些性质: (1)、一棵高h的完全... 阅读全文
posted @ 2014-11-28 14:46 KiteRunner 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 一、并查集的概念: 首先,为了引出并查集,先介绍几个概念: 1、等价关系(Equivalent Relation) 自反性、对称性、传递性。 如果a和b存在等价关系,记为a~b。 2、等价类: 一个元素a(a属于S)的等价类是S的一个子集,它包含所有与a有关系的元素。注意,等价类形成对S的一个划分:S的每一个成员恰好互斥地出现在一个等价类中。为了确定是否a~b,... 阅读全文
posted @ 2014-11-28 14:45 KiteRunner 阅读(503) 评论(0) 推荐(0) 编辑