位置: 编程技术 - 正文

Node.js的特点和应用场景介绍(node.js最主要的特点有哪3个?)

编辑:rootadmin

推荐整理分享Node.js的特点和应用场景介绍(node.js最主要的特点有哪3个?),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs有什么特点,node.js的概念,node.js的优点,node.js的优点,node.js最主要的特点有哪3个?,node.js的概念,node.js的特点及应用在哪些场景,node.js的特点及应用在哪些场景,内容如对您有帮助,希望把文章链接给更多的朋友!

Node.js应该是当今最火热的技术之一。本文主要介绍Node.js的特点及应用场景。

Node.js是一个基于Chrome JavaScript运行时建立的一个平台,用来方便地搭建快速的 易于扩展的网络应用。Node.js借助事件驱动,非阻塞I/O模型变得轻量和高效,非常适合 运行在分布式设备的数据密集型实时应用。

1. 特点

1.1 异步I/O

所谓的异步I/O,是相对同步I/O而言的。程序执行过程中必然要进行很多I/O操作,如读写文件、输入输出、请求响应等等。通常来说,I/O操作是非常费时的。例如在传统的编程模式中,你要读一个几G的文件,整个线程都暂停下来,等待文件读完后继续执行。换言之,I/O操作阻塞了代码的执行,极大地降低了程序的效率。

关于异步I/O,其实对于前端工程师来说并不陌生,因为发起Ajax请求就是最常见的一种“异步”调用。在Node中,以读取文件(读文件是一种耗时的I/O操作)为例,它与发起Ajax请求的写法很像:

上述代码在调用fs.readFile后,后续代码是被立即执行的,“读取文件完成”的时刻是无法预知的。当线程遇到I/O操作时不会以阻塞的方式等待I/O操作结束,而只是将I/O请求发送给操作系统,继续执行后续语句。当操作系统完成I/O操作时以事件的形式通知执行I/O操作的线程,线程会在特定时间处理这个事件。

1.2 事件循环与回调函数

Node.js的特点和应用场景介绍(node.js最主要的特点有哪3个?)

所谓事件循环是指Node会把所有的异步操作使用事件机制解决,有个线程在不断地循环检测事件队列。事件循环会检查事件队列中有没有未处理的事件,直到程序结束。事件的编程方式具有轻量级、松耦合、只关注事务点等优势,但是在多个异步任务的场景下,事件与事件之间各自独立,如何协作是一个问题。在Javascript中,回调函数无处不在,回调函数是最好的接受异步调用返回数据的方式。

1.3 单线程

Node保持了JS在浏览器中单线程的特点。单线程的最大好处是不用像多线程编程那样出处在意状态的同步问题,没有死锁的存在,也没有线程上下文切换的开销。单线程也有其弱点,主要表现在三方面:无法利用多核CPU;错误会引起整个应用退出,应用的健壮性值得考研;大量计算会占用CPU导致无法继续调用异步I/O。

为了解决上述问题,Node采用了与HTML5 Web Workers相同的思路,使用child_process来解决但单线程中大计算量的问题。通过将计算分发到各个子进程,可以将大量计算分解掉,然后再通过进程之间的事件消息来传递结果。

1.4 跨平台

Node是跨平台的,即同样的一套JS代码都可以部署运行在Windows、Linux、OSX等平台。这主要得益于Node在操作系统与Node上层模块系统之间构建了一层平台层架构libuv。

2. 应用场景

1)、实时应用:如在线聊天,实时通知推送等等(如socket.io)2)、分布式应用:通过高效的并行I/O使用已有的数据3)、工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序4)、游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架)5)、利用稳定接口提升Web渲染能力6)、前后端编程语言环境统一:前端开发人员可以非常快速地切入到服务器端的开发(如著名的纯Javascript全栈式MEAN架构)

node.js中的Socket.IO使用实例 1.简介首先是Socket.IO的官方网站:

node.js中Socket.IO的进阶使用技巧 在上一篇博文Socket.IO中,我简要介绍了Socket.IO的基本使用方法并创建了一个简单的聊天室DEMO。本篇在入门篇的基础上,继续探讨Socket.IO的进阶用法。本

node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用 在开发或调试Node.js应用程序的时候,当你修改js文件后,总是要按下CTRL+C终止程序,然后再重新启动,即使是修改一点小小的参数,也总是要不断地重

标签: node.js最主要的特点有哪3个?

本文链接地址:https://www.jiuchutong.com/biancheng/374231.html 转载请保留说明!

上一篇:Node.js中的模块机制学习笔记(node.js 模块)

下一篇:node.js中的Socket.IO使用实例(Node.js中的核心模块包括哪些内容?)

  • 新企业所得税季初资产总额
  • 销售材料的会计分录在实务第几章节
  • 用友T6自定结转怎样设置
  • 摊余成本的构成内容
  • 营业费用和管理费用比较
  • u8反记账操作步骤
  • 汇算清缴忘记申报了怎么办
  • 银行回单可以做收入吗
  • 销售返利计入什么科目
  • 车辆的鉴定评估方法
  • 零申报企业年报资产总额怎么填
  • 检测费属于什么税目
  • 税务年报多少钱
  • 技术变动成本是指
  • 每股收益的无差别点小于息税前利润选择什么筹资方式
  • 顾客让抹零头应对话术
  • 建筑工程的适用范围
  • 拍卖中,必须规定一切税费由买受人承担吗?
  • 企业所得税优惠事项包括哪些?
  • 外地预缴工会其他经费计入什么科目?
  • ah股溢价是什么意思 搬砖
  • 增值税申报表中期初未缴税额指什么
  • 企业破产应收账款要发询证函吗
  • 建筑业预估成本怎么算
  • 属于外来凭证的单据是
  • 库存商品的核算方法
  • 电子银行汇票 票据承兑
  • cpu不支持vt怎么办
  • 给员工小孩买礼物合适吗
  • 英雄联盟电脑软件图片
  • 苹果macbookpro分辨率是多少
  • u盘转移到另一个u盘
  • 对公账户被诈骗转款728000会怎么样呢
  • 销售门窗并安装如何缴纳增值税
  • 印花税申报后怎么缴费
  • 被公司辞退有钱吗
  • 开发产品结转到哪个科目
  • 手把手怎么样
  • php的mysql_query
  • 最小计算机系统包括
  • 瓦尔加德
  • 小企业会计准则2023电子版
  • 西安微信公众号开发
  • 微信小程序项目中的 ______ 文件是全局配置文件
  • 自动驾驶汽车决策与控制pdf
  • 命令行mkdir创建文件夹
  • cynefin框架
  • 车险增值税发票模板图片
  • 不抵扣的发票需要认证吗
  • 怎么做零售企业
  • 农民专业合作组织法律制度的类型包括哪些?
  • 租赁合同印花税率多少
  • 土地免缴土地使用税
  • 一般纳税人认定书是什么样子
  • 出口退税率为0的账务处理
  • 为什么委托代销业务受托方要反映或有负债
  • 5000以下固定资产一次性计提折旧政策
  • 增值税进项税加计抵减
  • 手续费和利息费用的区别
  • 商业企业内部物流的主要作用是保证商品的正常销售
  • win10每次开机都假死机
  • u盘 macbook
  • win1021h2正式版发布日期
  • centos ftp上传文件
  • 红石cpu教程
  • 如何正确使用农药芸苔素
  • 遍历目录文件
  • js限制数组长度
  • Android之Notification-android学习之旅(二)
  • windows常用网络命令的使用
  • 浏览器复制插件在哪
  • jquery图片轮播无缝连接
  • 注册表危险组件怎么安装
  • 安卓xml存储方式
  • android java编程
  • 担保费属于什么服务
  • 核定征收的适用税率
  • 小规模纳税人可以用专票抵扣税吗
  • 浙江税务开票系统
  • 盐城国税电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设