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

创同盟网站1000个简单的小手工

创同盟网站,1000个简单的小手工,什么是手机app,wordpress 好玩的插件Node.js是一个基于Chrome V8引擎的JavaScript运行时环境#xff0c;它能够让JavaScript脚本运行在服务端#xff0c;这使得JavaScript成为与PHP、Python等服务端语言平起平坐的脚本语言。 1、认识Node.js Node.js是当今网站开发中非常流行的一种技术#xff0c;它以简单易…Node.js是一个基于Chrome V8引擎的JavaScript运行时环境它能够让JavaScript脚本运行在服务端这使得JavaScript成为与PHP、Python等服务端语言平起平坐的脚本语言。 1、认识Node.js Node.js是当今网站开发中非常流行的一种技术它以简单易学、开发成本低、高并发等特点而深受广大开发者欢迎本节将对Node.js的基本概念、工作原理、优缺点以及应用领域等进行介绍。 1.1、 什么是Node.js Node.js简称Node是一个开源的、基于Chrome V8引擎的服务器端JavaScript运行时环境可以在浏览器环境以外的主机上解释和运行JavaScript代码它发布于2009年5月由谷歌工程师Ryan Dahl开发。Node.js支持现在大部分的主流浏览器包括Chrome、Microsoft Edge和Opera等。Node.js主要由标准库、中间层和底层库这3部分组成其架构如下图所示 下面分别对上图中的Node.js结构层进行介绍 标准库(Node standard library)提供了开发人员能够直接进行调用并使用的一些API如http模块、stream流模块、fs文件系统模块等可以使用JavaScript代码直接调用。中间层(Node binding)由于Node.js的底层库采用C/C实现而标准库中的JavaScript代码无法直接与C/C进行通信因此提供了中间层它在标准库和底层库之间起到了桥梁的作用它封装了底层库中V8引擎和libuv等的实现细节并向标准库提供基础API服务。底层库C/C实现底层库是Node.js运行的关键它由C/C实现包括V8引擎、libuv、C-ares、OpenSSL、zlib等它们的主要作用如下 V8引擎Google的一个开源的JavaScript和WebAssembly引擎使用C语言编写用于Chrome浏览器和Node.js等。V8引擎主要是为了提高JavaScript的运行效率因此它采用了提前编译的方式将JavaScript编译为原生机器码这样在执行阶段程序的执行效率可以完全媲美二进制程序。 libuv一个专门为Node.js量身打造的跨平台异步I/O库使用C语言编写提供了非阻塞的文件系统、DNS、网络、子进程、管道、信号、轮询和流式处理机制。Node.js会通过中间层将用户的JavaScript代码传递给底层库的V8引擎进行解析然后通过libuv进行循环调度最后再返回给调用Node.js标准库的应用。 C-ares一个用来处理异步DNS请求的库使用C语言编写对应Node.js中dns模块提供的resolve()系列方法。 OpenSSL一个通用的加密库通常用于网络传输中的TLS和SSL协议实现对应Node.js中的tls、crypto模块。 zlib一个提供压缩和解压支持的底层模块。 说明 在Node.js中libuv发挥着十分重要的作用具体如下 libuv使用各平台提供的事件驱动模块实现异步这使得它可以支持Node.js应用的非文件I/O模块并把相应的事件和回调封装成I/O观察者放到底层的事件驱动模块中。当事件触发时libuv会执行I/O观察者中的回调。libuv实现了一个线程池来支持Node.js中的文件I/O、DNS、用户异步等操作。 1.2、Node.js的工作原理 1、事件驱动 Node.js采用一种独特的事件驱动思想将I/O操作作为事件响应而不是阻塞操作从而实现了事件函数的快速执行与错误处理。由于Node.js能够采用异步非阻塞的方式访问文件系统、数据库、网络等外部资源因此它能够高效地处理海量的并发请求极大地提高了应用程序的吞吐量。 2、单线程 Node.js采用单线程模型只需要轻量级的线程即可处理大量的请求。与多线程模型相比这种模型消除了线程之间的竞争使得程序的稳定性大幅度提升。在Node.js的单线程模型中所有的I/O操作都被放在事件队列中一旦事件出现Node.js就会依次处理它们。事实上大多数网站的服务器端都不会做太多的计算它们接收到请求以后把请求交给其他服务来处理如读取数据库然后等待结果返回再把结果发给客户端。因此Node.js针对这一事实采用了单线程模型来处理它不会为每个接入请求分配一个线程而是用一个主线程处理所有的请求然后对I/O操作进行异步处理避开了创建、销毁线程以及在线程间切换所需的开销和复杂性。 3、非阻塞I/O 在传统的I/O操作例如读取或写入磁盘文件或者对远程服务器进行网络调用中当数据读取或写入操作发生时程序会被阻塞等数据读取或写入操作完成后才能进入下一步操作。但是在Node.js中所有的I/O操作都是非阻塞的当某个I/O操作发生时不是等待其执行完成才能进入下一步操作而是直接回调相应的函数从而实现了对外部资源的高效访问。 4、事件循环 Node.js采用了一种特殊的设计方式—事件循环它在工作线程池中维护一个任务队列当接到请求后将该请求作为一个事件放入这个队列中然后继续接收其他请求同时Node.js程序会不断地从工作队列中获取要执行的事件并通过事件循环流程对其进行处理。下图给出了Node.js中事件循环的工作原理 事件循环的主要工作阶段如下 计时器处理由setTimeout()和setInterval()设置的回调。回调运行挂起的回调函数。轮询检索传入的I/O事件并运行与I/O相关的回调。检查完成轮询后立即运行回调。关闭回调关闭事件和回调。 注意 无论是在Linux平台还是Windows平台上Node.js内部都是通过线程池来完成异步I/O操作的而libuv针对不同平台的差异性实现了统一调用因此Node.js的单线程仅仅是指JavaScript运行在单线程中而并非Node.js是单线程的。 5、模块化设计 在Node.js中采用了一种模块化的设计方式按照功能模块将代码拆分成多个文件使用require函数引入从而提高了代码的复用率同时也增强了代码的可维护性。另外Node.js提供了许多内置模块如http模块、fs模块等能够帮助开发者快速搭建Web应用。 1.3、Node.js的优缺点 作为一种能够同时进行前端和后端开发的“年轻”编程语言Node.js既有优点也有缺点下面分别进行介绍。 Node.js的优点如下 前后端一体化开发Node.js使用JavaScript作为开发语言使得前端和后端都可以使用同一种语言进行开发从而提高开发效率和代码的可维护性。丰富的模块库Node.js的生态系统非常丰富拥有大量的第三方模块使得开发者可以快速构建出各种类型的应用。轻量级Node.js采用模块化开发方式使得应用程序可以轻松地分解成小模块从而提高了可维护性和可扩展性。易部署使用Node.js开发的应用程序可以轻松地部署到各种云端平台上。 Node.js的缺点如下 缺少严格的类型检查Node.js是基于JavaScrpt的它没有严格的类型检查这既是它的优点也是它的缺点优点是开发自由度很高但缺点是程序出现问题时检查调试会比较困难。可靠性不如传统后端语言由于Node.js的相对年轻和快速迭代它在可靠性和稳定性方面相对传统后端语言如Java、C语言、C#等还有一定的差距。CPU密集型任务表现不佳由于Node.js的单线程模型当需要进行大量的CPU密集型计算时可能会出现性能瓶颈导致程序的运行效率下降。 1.4、Node.js能做什么 使用Node.js可以生成以下类型的应用程序 HTTP Web服务器。微服务或无服务器API后端。用于数据库访问和查询的驱动程序。交互式命令行接口。桌面应用程序。实时物联网(IoT)客户端和服务器端。适用于桌面应用程序的插件。用于文件处理或网络访问的Shell脚本。机器学习库和模型。 1.5、谁在使用Node.js 前端最流行的JavaScript正在一步步走入后端得益于V8引擎Node.js为JavaScript运行在后端提供了运行环境因此它正在吸引越来越多的公司来使用它比如用它创建协作工具、聊天工具、社交媒体应用程序等。 据不完全统计现在已经有越来越多的国际和国内知名公司在内部使用了Node.js技术如流媒体视频网站Netflix、在线支付平台PayPal、社交平台LinkedIn、Node.js专业中文社区CNode、购物平台淘宝网、腾讯官网等。
http://wiki.neutronadmin.com/news/13874/

相关文章:

  • 外贸营销网站建设公司排名住房和建设部官方网站
  • 网站建设const是什么意思有内涵的公司名字
  • 陕西网站建设的内容表格布局的网站
  • 专业的外贸行业网站模板江西省网站建设
  • 大作业做网站做网站最专业的公司
  • 纯静态网站广西建设工会网站
  • 东莞市产品网络推广企业绍兴网站建设优化
  • vue企业门户网站模板怎样建设美丽中国?
  • 一个网站用多少数据库表建筑网站建设
  • 网站服务器做哪些安全措施中文游戏制作软件
  • 网站建设需要哪些费用大连建设学院网站
  • 嘉兴优化网站哪家好wordpress改模式
  • 怎么建立一个自己的网站学校网站平台建设
  • 杭州seo网站推广软件wordpress在哪里下载
  • 北京十大平面设计公司国内seo公司
  • 外贸网站建站费用个人优惠券网站怎么做
  • 做自媒体关注的网站嘉兴专业做网站
  • 什么样的网站利于优化移动网站源码
  • 数字货币网站开发需求网站浮窗代码
  • 网站建设需要什么教材抖音信息流广告怎么投放
  • wordpress怎样搭建外贸网站常州天宁区建设局网站
  • 网站建设与管理教案长沙网站优化效果
  • 建网络商城网站linux wordpress nginx
  • 可以直接进入网站的正能量宣传片制作合同范本
  • 桂阳城乡建设局网站天津飞机模型制作公司
  • 西安大型网站建设怎么进网站后台管理系统
  • 重庆工业网站建设设计网站100个免费
  • wordpress文章前阅读南昌seo网站管理
  • 七冶建设集团网站销售平台排行榜前十名
  • 做网站空html网站 怎么做seo