Skip to content

《Node.js实战》读书笔记 #8

@sishenhei7

Description

@sishenhei7

读书笔记

1.官网上给 Node 下的定义是:一个搭建在 Chrome Javascript 运行时上的平台,用于构建高速、可伸缩的网络程序。node.js 采用的是事件驱动、非阻塞 I/O 模型,使它既轻量又高效,并成为构建运行在分布式设备上的数据密集型实时程序的完美选择。

2.如果程序在I/O上阻塞了,当有更多请求过来时,服务器会怎么处理呢?在这种情景中通常会用多线程的方式。一种常见的实现是给每个连接分配一个线程,并为那些连接设置一个线程池。但是当需要大量的线程处理很多并发的服务器连接时,线程会消耗额外的操作系统资源。线程需要CPU和额外的RAM来做上下文切换。

3.Node 所针对的应用程序有一个专门的简称:DIRT。它表示数据密集型实时程序(data-intensive real-time)。

4.Node 是 Javascript 程序的平台,不要把它跟框架相混淆。

5.为了提供静态文件,需要使用 Node 内置的 http 模块。但通过 HTTP 提供文件时,通常不能只是发送文件中的内容,还应该有所发送文件的类型。也就是说要用正确的 MIME 类型设置 HTTP 头的 Content-Type。为了查找这些 MIMI 类型,你会用到第三方模块 mime。

6.只有兼容 HTML5 的浏览器才支持 WebSocket,但是 Socket.IO 库给不能使用 WebSocket 的浏览器提供了一些后备措施,包括使用 flash。

7.访问内存(RAM)要比访问文件系统快得多,所以我们可以全局声明一个 Cache 变量,然后把常用的数据缓存到内存里面去。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions