热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

邂逅NodeJS

邂逅NodeJS浏览器的内核与JS引擎不同浏览器的不同内核什么是浏览器的内核渲染引擎的工作过程什么是NodeJSNodeJS的使用Node的版本管理工具Node的REPL浏览器的内

邂逅NodeJS

    • 浏览器的内核与JS引擎
      • 不同浏览器的不同内核
      • 什么是浏览器的内核
      • 渲染引擎的工作过程
    • 什么是NodeJS
    • NodeJS的使用
      • Node的版本管理工具
    • Node的REPL


浏览器的内核与JS引擎


不同浏览器的不同内核


  • Gecko 火狐浏览器
  • Trident 微软开发,用于 IE浏览器,不久前微软也停止开始对 IE的维护。
  • Blink Google Chrome浏览器,微软新型浏览器 Edge, Opera浏览器
  • Webkit 苹果公司 开发,用于Safari

什么是浏览器的内核

浏览器内核指的是 浏览器的排版引擎

排版引擎又叫浏览器引擎,页面渲渲染引擎

渲染引擎的工作过程

也就是浏览器拿到HTML文件后如何渲染。

浏览器在解析HTML代码是从上到下进行解析,若碰到了 script标签,会停止解析HTML,而是会加载 Javascript代码。WHY 不是异步加载呢。

因为Javascript会可以操作 DOM,浏览器会让 HTML生成的DOM和Javascript操作的DOM 一起形成 DOM树,这样浏览器就不要反复去生成新的 DOM树
在这里插入图片描述

而Javascript代码是交给Javascript引擎来执行的

我了解的一点点关于Javascript引擎的知识是关于 V8引擎的。

1_Da6ylguo0X6aIKW1v51YcQ

  • parser解析器,将Javascript代码源代码 解析成抽象语法树。
  • ignition解释器,将抽象语法树 转换成 字节码,其实此时就可以执行了。
  • TurboFan解释器,V8具有如下的机制,为了提高执行效率,如果某个方法经常被调用,那么这个函数挥别标记成热点函数,并将其转换为机器码再执行,以提高执行效率。但是若这个热点函数有改变,机器码又会反过来影响 字节码。

什么是NodeJS

NodeJS 是 一个基于 V8 Javascript引擎的Javascript运行环境。

已经知道浏览器可以执行JS代码,NodeJS也可以执行JS代码,那么两个有什么不同?

浏览器再执行JS的基础上,还要解析HTML,CSS之类的。但是NodeJS不要。

图解基于Node.js实现前后端分离| 亚里士朱德的博客

NodeJS的使用

安装:官网点击下载

image-20210616175033090

安装完Node之后,Node自带一个包管理工具 npm

理论上一台机器只能安装一个版本的Nodejs。要是我们想要多个呢?

Node的版本管理工具


  • mac 电脑可以安装 nvmn安装npm install 工具名字 -g进行全局安装。
  • window 可以安装另一个版本的 nvm。以下演示:

我是window系统,就以window的版本管理工具演示:

  • 安装工具 好像是没有直接命令安装的,只能在Github上下载, nvm-windows仓库地址
  • image-20210616180055759

使用

  • nvm -v查看当前nvm版本
  • nvm -h 查看使用帮助
  • nvm list本机上安装了哪些版本的 NodeJS
  • nvm list available 查看当前可以的node版本有哪些,如何可以对应下载版本。
  • nvm install 版本号 安装对应版本的Node
  • nvm use 版本号 使用本机安装好且版本号为输入值得Node

在Node环境下执行JS代码

image-20210616181101548

在Node环境下传递参数给JS文件

image-20210616181422450

Node的REPL

REPL是一个简单的、交互式的编程环境

浏览器也存在 REPL

image-20210616182012123

L

REPL是一个简单的、交互式的编程环境

浏览器也存在 REPL

在这里插入图片描述


推荐阅读
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 开发笔记:前端之前端初识
    开发笔记:前端之前端初识 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
author-avatar
小勺年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有