读书笔记
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 变量,然后把常用的数据缓存到内存里面去。
读书笔记
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 变量,然后把常用的数据缓存到内存里面去。