当前位置: 首页 > news >正文

购物网站排名2016考研比较厉害的培训机构

购物网站排名2016,考研比较厉害的培训机构,买机票便宜网站建设,开封旅游网站建设网页推广Node.js入门之—1.1Node.js 简介 文章目录 Node.js入门之—1.1Node.js 简介什么是 Node.js错误说法 Node.js 的特点跨平台三方类库自带http服务器非阻塞I/O事件驱动单线程 Node.js 的应用场合适合用Node.js的场合不适合用Node.js的场合弥补Node.js不足的解决方案 什么是 Node.j…

Node.js入门之—1.1Node.js 简介

文章目录

  • Node.js入门之—1.1Node.js 简介
    • 什么是 Node.js
      • 错误说法
    • Node.js 的特点
      • 跨平台
      • 三方类库
      • 自带http服务器
      • 非阻塞I/O
      • 事件驱动
      • 单线程
    • Node.js 的应用场合
      • 适合用Node.js的场合
      • 不适合用Node.js的场合
      • 弥补Node.js不足的解决方案

什么是 Node.js

  • Node.js简称Node,是一个可以使JavaScript运行在服务器端的开发平台。
  • JavaScript本是一种Web前端语言,Node.js让JavaScript成为服务器端脚本语言。
  • Node.js选择JavaScript作为实现语言的原因:
    • JavaScript满足CommonJS标准,符合事件驱动,用户较多且门槛较低;
    • Chrome的V8引擎具有出色的性能。
  • Node.js将V8引擎封装起来,作为服务器运行平台,以执行JavasScript编写的后端脚本程序。
    nodejs 其实就是一款软件,其架构跟浏览器很相识,通常拿来跟谷歌浏览器对比。
    在这里插入图片描述

错误说法

Node.js是一门编程语言? ×
Node.js 是新版本的 JavaScript? ×

  • Node.js运行时环境包含执行JavaScript程序所需的一切条件。该引擎会将JavaScript代码转换为更快的机器码。
  • Node.js进一步提升JavaScript的能力,使JavaScript可以访问文件、读取数据库、访问进程,从而胜任后端任务。
  • 使用Node.js 的最大优点是开发人员可以在客户端和服务器端编写JavaScript,打通了前后端。
  • Node.js发展迅速,目前已成为JavaScript服务器端运行平台的事实标准。

Node.js 的特点

跨平台

  • Node.js是跨平台的,能运行在Windows、macOS和Linux平台上。

三方类库

  • Node.js除了自己的标准类库之外,还可使用大量的第三方模块系统来实现代码的分享和重用。

自带http服务器

  • 与其他后端脚本语言不同的是,Node.js内置了处理网络请求和响应的函数库,也就是自备了HTTP服务器,所以不需要额外部署HTTP服务器。

Node.js与PHP对HTTP请求的处理

非阻塞I/O

  • 非阻塞I/O又称异步式I/O,是Node.js的重要特点。
  • 阻塞I/O是指线程在执行过程中遇到I/O操作时,操作系统会撤销该线程的CPU控制权,使其暂停执行,处于等待状态,同时将资源转让给其他线程。
  • 非阻塞I/O是指当线程遇到I/O操作时,不会以阻塞方式等待I/O操作完成或数据返回,而只是将I/O请求转发给操作系统,继续执行下一条指令。
    Node.js的非阻塞I/O

事件驱动

  • 非阻塞I/O是一种异步方式的I/O,与事件驱动密不可分。
  • 事件驱动以事件为中心,Node.js将每一个任务都当成事件来处理。Node.js在执行过程中会维护一个事件队列,需执行的每个任务都会加入事件队列并提供一个包含处理结果的回调函数。
  • 在事件驱动模型中,会生成一个事件循环线程来监听事件,不断地检查是否有未处理的事件。
  • Node.js的异步机制是基于事件的,所有磁盘I/O、网络通信、数据库查询事件都以非阻塞的方式请求,返回的结果由事件循环线程来处理。
    Node.js事件循环机制

单线程

  • Node.js的应用程序是单进程、单线程的,但是通过事件和回调支持并发,性能变得非常高。
  • 在阻塞模式下,一个线程只能处理一项任务,要想提高吞吐量必须使用多线程。
  • 在非阻塞模式下,线程不会被I/O操作阻塞,该线程所使用的CPU核心利用率永远是100%,I/O操作以事件的方式通知操作系统。
  • Node.js在主线程中维护一个事件队列,当接收到请求后,就将该请求作为一个事件放入该队列中,然后继续接收其他请求。
  • Node.js内部通过线程池来完成非阻塞I/O操作,Node.js的单线程是指对JavaScript层面的任务处理是单线程的,而Node.js本身是一个多线程平台。

Node.js采用非阻塞I/O与事件驱动相结合的编程模式,与传统同步I/O线性编程思维有很大的不同,Node.js程序的控制很大程度要依靠事件和回调函数,这不符合开发人员的常规线性思路,需要将一个完整的逻辑拆分为若干单元(事件),从而增加了开发和调试的难度。

Node.js 的应用场合

适合用Node.js的场合

  • REST API:REST API是一种前后端分离的应用程序架构。
  • 单页Web应用:加载单个HTML页面,并在用户与应用程序交互时动态更新该页面的Web应用程序。
  • 统一Web应用的UI层:Node.js是面向服务的架构,其能够更好地实现前后端的依赖分离,可以将所有的关键业务逻辑都封装成REST API,UI层只需要考虑如何用这些API构建具体的应用。
  • 准实时系统:如聊天系统、微博系统、博客系统的准实时社交系统,特点是轻量级、高流量,没有复杂的计算逻辑。
  • 游戏服务器:程序员不必使用C语言就能开发游戏的服务器程序。
    微服务架构:Node.js也可用于实现基于微服务架构的应用。

不适合用Node.js的场合

  • 数据加密和解密。
  • 数据压缩和解压。
  • 模板渲染。

弥补Node.js不足的解决方案

存在的问题解决方案
CPU密集型任务偏向于CPU计算操作,需要Node.js直接处理,在事件队列中,如果前面的CPU计算任务没有完成,那么后面的任务就会被阻塞,出现响应慢的情况,使得后续I/O操作无法发起将大型运算任务分解为多个小任务,适时释放CPU计算空间资源,以免阻塞I/O调用的发起
单线程无法利用多核CPU。多CPU或多核CPU的服务器当Node.js被CPU密集型任务占用,导致其他任务被阻塞时,其他CPU核心处于闲置状态,从而造成资源浪费;Node.js程序一旦在某个环节崩溃,整个系统都会崩溃,这会影响其可靠性(1)部署Nginx反向代理和负载均衡,开启多个进程,绑定多个端口(2)使用cluster模块构建应用集群,启动多个Node.js实例,开启多个进程以监听同一个端口
http://www.dinnco.com/news/27409.html

相关文章:

  • 做照片书的模板下载网站好全国最好的广告公司加盟
  • 怎样做网站推广啊百度竞价什么时候开始的
  • 网站打开时的客户引导页深圳营销型网站
  • 珠海网站建设排名友情链接交换软件
  • 网站开发费用税网络营销主要做些什么工作
  • 怎样接做网站的活百度商城
  • 搜维斯网站建设seo任务平台
  • 哪家网站荥阳网站优化公司
  • 深圳燃气公司电话95511中国十大seo公司
  • 用商标做网站名字优化百度seo
  • 做细胞激活的母液网站国家新闻最新消息今天
  • 图片网站 模板如何提高网站的自然排名
  • ecshop怎么做网站推广手段和渠道有哪些
  • 微信小程序怎么写seo怎么做整站排名
  • 东莞专业全网推广建站公司种子搜索引擎
  • 响应式网站文字大小seo技术网
  • java做的网站怎么调试郑州seo团队
  • 德尔普网站建设长沙网站优化推广
  • 目前网站在初级建设阶段 需要大量数据丰富2022年最新新闻播报稿件
  • 那个比特币网站可以做杠杆品牌词优化
  • 做网站公司logo查看关键词被搜索排名的软件
  • 西安网评论seo企业推广案例
  • wordpress投稿验证码灯塔网站seo
  • 黑龙江网站建设工作室沈阳seo优化排名公司
  • 外贸用什么网站好苏州seo关键词优化外包
  • 网站建设能干什么郑州网络营销
  • 网站建设课程设计百度文库小璇seo优化网站
  • 泉州seo建站网推项目接单平台
  • 北太平庄做网站公司郑州百度推广哪家好
  • 江西网站建设费用网络销售推广是做什么的具体