浅谈 Node.js |
您所在的位置:网站首页 › cod14可以跨平台吗 › 浅谈 Node.js |
Node.js 是什么?
Node.js® 是一个开源、跨平台的 JavaScript 运行时环境。 官网:https://nodejs.org/zh-cn 更多精彩内容,请微信搜索“前端爱好者“, 戳我 查看 。 Node.js ≠ JavaScriptNode.js中,没有BOM和DOM。 Nodejs不是一门语言,只是一个跨平台的 JavaScript 运行时环境。 Node.js 的特性非阻塞 IO 模型 IO = input + output 计算机程序是按照顺序逐条执行,如图: 一条条执行,直到程序结束。 阻塞IO 阻塞式IO在进行数据读取时,如果内核中没有数据(发送端可能还没有发送数据或者发送的数据还没有达到),此时内核就开始等待数据,同时用户进程也进入阻塞状态,整个进程就会被挂起等待,不能做其他的事情。 当有数据到达内核时,内核等待结束,将数据从内核拷贝到用户区,用户进程结束阻塞,从挂起状态转为运行状态。 非阻塞式IO 在使用系统调用进行数据读取时,如果内核中没有数据到达,此时内核会进行等待。但是与阻塞式IO不同的是,此时的用户进程并不会被阻塞,不会被挂起,而是出错返回。 事件驱动 web前端中事件驱动是指在两个物体之间产生了交互行为,驱使两个物体的一方做出了相应的行为或动作; 事件驱动是指在持续事务管理过程中,进行决策的一种策略,即跟随当前时间点上出现的事件,调动可用资源,执行相关任务,使不断出现的问题得以解决,防止事务堆积。 javaScript中的事件驱动 javascript中的事件驱动是通过 鼠标或 热键 的动作引发的 主要事件如下: 鼠标单击事件 onclick 如:( )内容改变事件 onchange 如:()选中事件 onselect --当text或textarea的内容被高亮显示后触发该事件获得焦点事件 onFocus --当对象获得焦点时发生失去焦点事件 onBlur --和获得焦点事件相对应!文档载入事件 onload --当文档被载入是触发事件。通常也叫加载事件(加载运行) 一般用来设置cookie卸载文档事件 onunload --和加载文档事件对应。当web页面退出时发生,通常更新cookie的值鼠标右键菜单功能事件 oncontextmenu --可以屏蔽鼠标右键 时使用 Node.js 优势Node.js 应用程序的示例 Node.js 最见的 Hello World 示例是Web 服务器: const http = require("http") const hostname "127.8.8.1" const port = 3088 const server = http.createServer((req, res) => { res.statusode = 200 res.setHeader('Content-Type", "text/plain') res.end('你好世界\n') }) server.listen(port, hostname, () =>{ console.log(`~服务器运行在 http://$(hostname}:$port}`) )完完全全是javaScript语法 IO 密集 VS CPU 密集IO密集型(I/O bound) IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等I/O (硬盘/内存) 的读/写操作,此时CPU Loading并不高。 CPU密集型(CPU-bound) CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要求很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。 高并发高并发(High Concurrency)通常是指,系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。 进程, 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程的是进程内一个相对独立的可调度的执行单元。 多任务执行 – 线程声明周期 Node 是单线程。因为JavaScript是单线程。 单线程是JavaScript运行环境的单线程,NodeJs没有给JavaScript提供新线程的能力。 最终操作是通过底层以及它的事件驱动来完成的。 Node.js 采用事件驱动和异步I/0的方式,实现了一个单线程、高并发的运行时环境。 异步I/O执行顺序 运行react和vue的本地服务器,本地化代码转换。 gulp,webpack,vite等。 参考文档 https://blog.csdn.net/weixin_43111232/article/details/122567720https://www.php.cn/website-design-ask-495272.htmlhttps://blog.csdn.net/youanyyou/article/details/78990156 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |