Node.js笔记之简介
来源:互联网 发布:我的世界临冬城数据 编辑:程序博客网 时间:2024/05/16 13:54
什么是Node.js
Node.js是一门将javascript应用于服务器端并追求打造高性能web服务器的技术。社区火爆,在github上也有很多支持者。越来越多企业将其应用于自己项目,像阿里巴巴团队就十分支持Node.js,开放了很多学习教程,还提供了开源淘宝npm(Node.js模块下载工具)镜像方便中国使用者下载。
命名与起源
Node.js最早是在09年由一个叫Ryan Dahl的人在github上发布的,他希望每个Node进程都构成这个网络应用中的一个节点,所以将其起名为Node。在创造Node.js之前,他主要从事高性能web服务器,经历很多尝试和失败,他发现web服务器的几个要点:事件驱动,非阻塞I/O。此外他评估了很多编程语言想作为Node.js的实现道路,最终选择了javascript,主要因为它符合事件驱动,高性能(V8),没历史包袱(javascript在服务器端没市场,不影响导入I/O库),基于这两点他便开始走向开启了Node.js的大门的道路。
特点
1.异步I/O
异步I/O是web开发的十分重要的技术,不了解可以举例来说,在页面加载时候如果不使用异步,页面加载完成时间是每个需要加载任务的时间总和,而使用异步则是每个加载任务当中最长的任务所需时间,后者极大的提高了用户体验。Node.js底层构建了许多异步API,我们可以在语言层面很自然的进行调用。
2.事件与回调函数
事件的编程方式轻量级,松耦合,只用关注事务点。回调函数则非常适合异步调用的数据返回。
3.单线程
单线程有好有坏。最大好处是不用像多线程那样处处在意状态同步问题,也没有死锁,也没有线程上下文交换带来的性能开销。最大问题就是无法利用多核CPU,错误引起整个应用推出,大量计算占用CPU无法调用异步I/O等,但Node.js有其对应的处理方法。
4.跨平台
Node.js有个libuv中间件可以帮助它夸windows,*nix。
适合场景
1.I/O密集型
Node.js面向网络且擅长并行I/O,能够有效地组织起更多硬件资源,从而提供更好服务。
2.分布式应用
Node.js可伸缩性强,阿里巴巴团队开发的NodeFox中间件用多个mysql数据库像单个mysql一样。
3.与遗留系统和平共处
许多公司将Node.js整合到旧系统中,两者互相结合,取长补短。
4.关于CPU密集型
Node.js可以利用C/C++扩展模块、子进程间消息传递来利用CPU。
- Node.js笔记之简介
- Node.js学习笔记(1、简介)
- php与node.js对比之简介
- Node.js简介
- Node.js 简介
- Node.js简介url
- Node.js 入门简介
- Node.js简介
- Node.js简介
- Node.js简介
- node.js简介
- Node.js简介
- Node.js简介
- Node.js简介
- node.js简介
- Node.js简介
- Node.js简介
- Node.js入门简介
- atitit.TokenService token服务模块的设计
- ramdisk.img镜像文件的修改与组装
- dedecms怎么给第一个li加class
- 打开桌面word文件,出现乱码解决办法(未完待续)
- Android的Touch 事件的分发和消费机制
- Node.js笔记之简介
- C++编程注意的一些细节(一直更新)
- Linux中zip压缩和unzip解压缩命令详解
- 记录 yii GridView 默认搜索条件
- Linux shell 笔记
- Android Fragment 真正的完全解析(下)
- 管理口令(P):[INS-30011] 输入的 ADMIN 口令不符合 Oracle 建议的标准
- UIWebView 之 遇到小问题
- Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结