浏览器引擎

Node.js和Express简单入门

你。 提交于 2019-12-05 14:51:42
仅仅入门如何用Node.js和Express搭建一个web服务器,没有说明太多概念性的东西。 一、 Nodejs简介 ​ ==Node是JavaScript语言的服务器运行环境。== ​ 所谓“运行环境”有两层意思:首先,JavaScript语言通过Node在服务器运行,在这个意义上,Node有点像JavaScript虚拟机;其次,Node提供大量工具库,使得JavaScript语言与操作系统互动(比如读写文件、新建子进程),在这个意义上,Node又是JavaScript的工具库。 ​ Node内部采用Google公司的V8引擎,作为JavaScript语言解释器;通过自行开发的libuv库,调用操作系统资源。 二、Node.js的下载和安装 2.1 Node.js下载 node.js官网下载 官网会根据你当前的操作系统,提供给你最合适的版本去下载。 2.2 安装 ​ 下载成功之后是一个msi文件,双击安装即可。安装成功后,相应的环境变量都会自动配置,不需要我们再去手动配置。 ​ 一路next就可以安装成功。 2.3 测试Node.js是否安装成功 安装成功之后,可以在window控制台查看是否安装成功。 输入下面的命令查看node的版本。 node -v 直接输入node然后回车,就可以让node去执行我们的js代码了。 node 2.4 使用Node

浏览器内核

微笑、不失礼 提交于 2019-12-05 14:27:05
浏览器内核包括两部分:渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎。 渲染引擎负责解析网页语法并渲染、展示网页。渲染引擎决定了浏览器如何显示网页的内容以及页面的格式。 JS 引擎负责解析和执行 Javascript 语言,实现网页的动态效果。 最开始渲染引擎和 JS 引擎并没有很明确的区分,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。 不同浏览器内核对网页的语法的解析有所不同,因此同一网页在不同的浏览器里渲染,展示效果可能不同。 常见的浏览器内核: IE:Trident firefox:Gecko safari:webkit Chrome :Chromium/Blink Opera:Presto Microsoft Edge:EdgeHTML 更多详细资料请参考: 五大主流浏览器内核的源起以及国内各大浏览器内核总结 来源: https://www.cnblogs.com/vinciwangqi/p/11927605.html

《浏览器工作原理与实践》<06>渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

懵懂的女人 提交于 2019-12-05 13:59:29
在上篇文章中,我们介绍了渲染流水线中的 DOM 生成、样式计算和布局三个阶段,那今天我们接着讲解 渲染流水线后面的阶段 。 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染引擎之后,渲染引擎首先将 HTML 解析为浏览器可以理解的 DOM;然后根据 CSS 样式表,计算出 DOM 树所有节点的样式;接着又计算每个元素的几何坐标位置,并将这些信息保存在布局树中。 分层 现在我们有了布局树,而且每个元素的具体位置信息都计算出来了,那么接下来是不是就要开始着手绘制页面了? 答案依然是否定的。 因为页面中有很多复杂的效果,如一些复杂的 3D 变换、页面滚动,或者使用 z-indexing 做 z 轴排序等,为了更加方便地实现这些效果, 渲染引擎还需要为特定的节点生成专用的图层,并生成一棵对应的图层树(LayerTree) 。如果你熟悉 PS,相信你会很容易理解图层的概念,正是这些图层叠加在一起构成了最终的页面图像。 要想直观地理解什么是图层,你可以打开 Chrome 的“开发者工具”,选择“Layers”标签,就可以可视化页面的分层情况,如下图所示: 现在你知道了 浏览器的页面实际上被分成了很多图层,这些图层叠加后合成了最终的页面 。 下面我们再来看看这些图层和布局树节点之间的关系,如文中图所示: 通常情况下, 并不是布局树的每个节点都包含一个图层

一个页面从输入URL到加载显示完成,发生了什么?

二次信任 提交于 2019-12-05 10:55:05
面试经典题——URL加载 一、涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns、http):DNS解析成IP并完成http请求发送; 传输层(tcp、udp):三次握手四次挥手模式建立tcp连接; 网络层(IP、ARP):IP寻址; 数据链路层(PPP):将请求数据封装成帧; 物理层:利用物理介质传输比特流(传输的时候通过双绞线、电磁波等) OIS七层框架 :多了两层即,会话层(处理两个通信系统中交换信息的表示方式)和表示层(管理不同用户和进程之间的对话)。 get和post的区别 : get产生一个tcp数据包,post产生两个 get请求时会把headers和data数据一起发送出去; post请求时,浏览器先发送headers,服务器100继续,浏览器再发送data。 DNS查询得到IP 请求信息:首先查看域名的本地DNS缓存,该缓存存储计算机最近检索到的信息,如果计算机不知道答案,那么就需要执行一个DNS查询来查找答案; 询问递归式DNS服务器: 如果信息不存储在本地,计算机会联系您的ISP(网络提供商)的递归DNS服务器; 这些专用计算机会为你执行一个DNS查询工作; 递归服务器有自己的缓存,所以这个查询过程通常在这里完成,并将信息还回给用户; 询问根域名服务器 如果递归服务器没有答案,他们会查询根域名服务器; 根域名服务器是一种计算机

001.web标准

十年热恋 提交于 2019-12-05 08:45:45
1. 认识网页 网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。 <img src="media/mi.png"alt=""> 思考: 网页是如何形成的呢? 总结 网页有图片、链接、文字等元素组成,我们后面的任务就是要把这部分网页元素用代码写出来。。。 2. 浏览器(显示代码) 浏览器是网页显示、运行的平台,常用的浏览器有IE、火狐(Firefox)、谷歌(Chrome)、Safari和Opera等。我们平时称为五大浏览器。 可能你最熟悉的是 IE浏览器,但是。。。 2.1 查看浏览器占有的市场份额 查看网站: http://tongji.baidu.com/data/browser 2008年,大名鼎鼎的互联网巨头Google公司发布了它的首款浏览器Chrome浏览器。 跟王思聪一样,没办法,生下来人家就是富二代官二代啊,后台太强,而且确实先天能力得天独厚。 pink老师 一句话说出他们: 出自谷歌,唯我不败;一统江湖,千秋万代。 2.2 常见浏览器内核(了解) 首先解释一下浏览器内核是什么东西。英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器内核. 负责读取网页内容,整理讯息,计算网页的显示方式并显示页面. 因为浏览器太多啦, 但是现在主要流行的就是下面几个:

一种web编程的新的模板处理思路

孤者浪人 提交于 2019-12-04 17:04:22
目前web开发中充斥着各种各样的模板引擎,从前端到后端,性能优劣暂且不论,剖析其大体工作方式,可以概括为:实例化模板!也就是将Controller处理结果生产的Model数据通过模板引擎渲染View(模板引擎约定的模板),再把渲染后的结果呈现给用户。只不过分前端模板引擎和后端模板引擎之分。 后端模板引擎,据我接触的Beetl所言,就是在服务器端,实现页面渲染。今天 @九月 推荐给我的一些前端模板引擎,是工作在前端(也就是客户端,将渲染工作交给了客户端浏览器处理)。比较了一下他们的工作原理,我们站在更好的节省服务器性能的角度考虑,可以实现一种新的web开发模式,这种模式,不仅可以兼顾W eb显示方式,而且还兼容客户端访问形式,而且不需要花费太多的代价。 首先我们必须要明确一点,服务器的核心职责是什么?网络服务如果按照MVC模式来表述,服务器的核心职责应该是Controller,数据库的核心职责是Model,客户端或者浏览器的职责是View。从服务器的核心职责上讲,它应该仅仅是接收客户端的请求并作出应答!服务器只负责处理数据,对页面的渲染应该完全交给客户端来完成,而且客户端是可以胜任的。如果你将浏览器看成是一个可以提供丰富支持的客户端就应该理解了,其实B/S模式本质上也是C/S。 我们以前开发的WEB程序,对浏览器的概念比较淡泊,造成这样的原因也许是我们对浏览器的认识不够造成的

selenium chrome headless无界面引擎

二次信任 提交于 2019-12-04 16:42:39
注意:PhantomJS已被舍弃 chrome headless 在打开浏览器之前添加参数 import time import sys from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options # if __name__ == '__main__': keyword = 'iphone' if len(sys.argv) > 1: keyword = sys.argv[1] option = Options() option.add_argument('--headless') # 打开浏览器 browser = webdriver.Chrome(chrome_options=option) browser.get('https://www.jd.com') 查看情况,通过对浏览器截图 browser.get_screenshot_as_png('1.png') 来源: https://www.cnblogs.com/wt7018/p/11874876.html

WEB前端初识

ぃ、小莉子 提交于 2019-12-04 16:26:50
浏览器 浏览器是网页运行的平台,常用的五大浏览器:IE、火狐(Firefox)、谷歌(Chrome)、Safari和Opera 什么是浏览器内核 内核分为两部分:渲染引擎 和 JS 引擎。 渲染引擎(layout engineer 或者 Rendering Engine):负责渲染网页,通过HTML、XML,CSS等,计算网页显示的方式,然后输出至显示器或打印机。(浏览器内核的不同,对应网页的语法解释会有不同,渲染效果也会不同) JS引擎: 则是解析Javascript 语言,执行 javascript语言来实现网页的动态效果。 注:最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎,但是常见的浏览器内核可以分这四种:Trident(IE)、Gecko(firefox)、Blink(chrome)、Webkit(Safari)。 移动端浏览器内核: iPhone 和 iPad 等苹果 iOS 平台主要是 WebKit,Android 4.4 之前的 Android 系统浏览器内核是 WebKit,Android4.4 系统浏览器切换到了Chromium,内核是 Webkit 的分支 Blink,Windows Phone 8 系统浏览器内核是 Trident。 WEB标准的好处 让Web的发展前景更广阔 内容能被更广泛的设备访问

初识JavaScript二-----浏览器与JavaScript

删除回忆录丶 提交于 2019-12-04 16:23:54
浏览器的核心包括两部分:渲染引擎和JavaScript解释器(又称JavaScript引擎)。 1 渲染引擎 渲染引擎的主要作用:将网页代码渲染为用户视觉可以感知的平面文档。不同的浏览器有不同的渲染引擎。简单说明如下: Firefox:Gecko引擎 Safari:WebKit引擎 Chrome:Blink引擎 IE:Trident引擎 Edge: EdgeHTML引擎 渲染引擎处理网页,通常分成四个阶段。 第1步,解析代码:HTML代码解析为DOM,CSS代码解析为CSSOM(CSS Object Model)。 第2步,对象合成:将DOM和CSSOM合成一棵渲染树(render tree)。 第3步,布局:计算出渲染树的布局(layout)。 第4步,绘制:将渲染树绘制到屏幕上。 以上四步并非严格按顺序执行,往往第一步还没完成,第二步和第三步就已经开始了。所以,会看到这种情况:网页的HTML代码还没下载完,但浏览器已经显示出内容了。 2 重流和重绘 渲染树转换为网页布局,称为“布局流”(flow);布局显示到页面的这个过程,称为“绘制”(paint)。它们都具有阻塞效应,并且会耗费很多时间和计算资源。 页面生成以后,脚本操作和样式表操作,都会触发重流(reflow)和重绘(repaint)。用户的互动,也会触发,如设置了鼠标悬停(a:hover)效果、页面滚动

《Webkit技术内幕》之页面渲染过程

怎甘沉沦 提交于 2019-12-04 16:12:51
文章同步到github 《Webkit技术内幕》之页面渲染过程 最近拜读了传说中的《Webkit技术内幕》一书,有很大收获,尤其是对页面渲染有了较深的认识。由于功力有限,而且书中设计到较多的底层也无法理解,所以本文主要整理和分享一下自己理解的基于Webkit内核浏览器的页面渲染的整体过程,不做深入介绍(也做不了深入介绍)。 浏览器内核 浏览器之所以能呈现出更重页面,正是由于浏览器内核的存在,也被称为渲染引擎,主要作用就是,也就是能把HTML/CSS/JavaScript文本其相关的资源转化转化成可视化可交互的图像页面,这个过程就是渲染。 四大主流内核 内核 浏览器 内核识别码 Trident IE、360 -ms Gecko Firefox(火狐) -moz presto Opera(欧朋) -o Webkit Chrome(谷歌) safari(苹果) -webkit Webkit架构 本文主要是基于Webkit内核,所以先放一张整理Webkit架构图(并非全部模块, 主要包含主要模块),大致介绍一下Webkit的架构 自下而上主要分为三层: 1.操作系统层 2.Webkit渲染过程中依赖的很多第三方模块 3.Webkit层,主要包含webCore、渲染引擎层、嵌入式接口层,绑定层 1.操作系统层 由Webkit可以运行在不同的操作系统上,浏览器也可以运行在不同的操作系统上