injected-script 这里的injected-script是我给它取的,指的是通过DOM操作的方式向页面注入的一种JS。为什么要把这种JS单独拿出来讨论呢?...这是因为content-script有一个很大的“缺陷”,也就是无法访问页面中的JS,虽然它可以操作DOM,但是DOM却不能调用它,也就是无法在DOM中通过绑定事件的方式调用content-script...badge 所谓badge就是在图标上显示一些文本,可以用来更新一些小的扩展状态提示信息。因为badge空间有限,所以只支持4个以下的字符(英文4个,中文2个)。...pageAction(地址栏右侧) 所谓pageAction,指的是只有当某些特定页面打开才显示的图标,它和browserAction最大的区别是一个始终都显示,一个只在特定情况才显示。...,需要先在 chrome://extensions 页面按下Ctrl+R重新加载插件,然后关闭再打开开发者工具即可,无需刷新页面(而且只刷新页面不刷新开发者工具的话是不会生效的)。
1.减少页面请求 按需加载 合并压缩文件 将小图标合并成雪碧图 字体图标 dataURL 内置图片 2.优化网络链接 cdn, 减少dns查询, 避免服务器端重定向 3.减少下载量 压缩css...- script元素会阻塞后续内容的解析,因为script中可以同过document.write来更改页面 不会缩短加载时间,但会减少页面呈现时间 白屏时间 fetchStart — app-cache...避免使用CSS表达式(Expression) 用代替@import 避免使用滤镜 四、 JavaScript部分 把脚本置于页面底部 使用外部JavaScript和CSS 削减JavaScript...,如果用户打开网页图片加载半天出不来,就算我们的图片做的再漂亮,又有什么卵用!...关于js 第三方的js库,必须使用min版。站点内部的lib,每次发布上线之前必须使用gulp压缩合并。
这个字段定义插件的后台页面,这个页面在默认设置下是在后台持续运行的,只随浏览器的开启和关闭 persistent 定义了后台页面对应的路径 page 定义了后台的html页面 scripts 当值为false...时,background的页面不会在后台一直运行 在开始Chrome插件的研究之前,除了manifest.json的配置以外,我们还需要了解一下围绕chrome建立的插件结构。...,当选中图标之后右键选项可以进入这个页面。...5种injected script、content-script、popup js、background js和devtools js. injected script 是直接插入到页面中的js,和普通的...DOM,但是可以通过chrome.tabs.executeScript来执行脚本,从而实现对页面DOM的操作。
使用隐身模式 隐身模式或私有模式会使用单独的用户配置文件,在浏览器重新启动之后不会保留 Cookie,localStorage或缓存文件之类的数据。...首先,从 DevTools 菜单中的 More tools 子菜单中打开 Coverage 。重新加载页面,面板将用条形图显示未使用代码的百分比: ?...单击任何 JavaScript 文件,未使用的代码会用红条突出显示。 5. 找到DOM更改代码 当事件被触发时,很难确定哪个函数负责更新特定的 HTML DOM 元素。...logpoints 通常将在页面刷新之间保持不变。 10. 使用条件断点 单击 Sources 面板中打开的文件的行号会添加一个断点。...文件图标显示为带有紫色的覆盖指示符: ? 它还将显示在 Overrides 选项卡和 localfiles 目录中。
8、DOM对象 document document对象里保存着整个web页面dom结构,在页面上所有的元素最终都会映射为一个dom对象。...8、Sprite图 对于大型站点,为了减少http请求的次数,一般会将常用的小图标排到一个大图中,页面加载时只需请求一次网络, 然后在css中通过设置background-position来控制显示所需要的小图标...比如h1~h6这几个标签在SEO中的权值非常高,用它们作页面的标题就是一个简单的SEO优化。 2、页面渲染机制 页面渲染就是浏览器的渲染引擎将Html代码根据CSS定义的规则显示在浏览器窗口中的过程。...8、Canvas和SVG Canvas 通过Javascript 来绘制 2D 图形。Canvas 是逐像素进行渲染的。在 Canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。...SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。你可以为某个元素附加 JavaScript 事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。
• 省略冗余标签和属性 • 使用相对路径的 URL 2.2文件放在合适位置 • CSS 样式文件链接尽量放在页面头部 • CSS 加载不会阻塞 DOM tree 解析,但是会阻塞...任何 body 元素之前,可以确保在文档部分中解析了所有 CSS 样式(内联和外联),从而减 少了浏览器必须重排文档的次数。...• 增加首屏必要的 CSS 和 JS • 页面如果需要等待所的依赖的 JS 和 CSS 加载完成才显示,则在渲染过程中页面会一直显 示空白,影响用户体验,建议增加首屏必要的 CSS 和 JS,...比如页面框架背景图片或者 loading 图标,内联在 HTML 页面中。...• 应用于: 缓存静态文件内容 JavaScript /CSS(比如百度M站首页) • 缓存不常变更的 API 接口数据 • 储存地理位置信息 • 浏览在页面的具体位置
ModestMaps提供一个核心健壮的带有很多hooks与附加functionality函数的要素开发包。 ?...可以让你用最少的代码创建专业的JavaScript图表,甚至只需要一行Ruby代码即可绘制出漂亮的图表! ?...20.HighChartjs HighChartjs是由纯JavaScript实现的图标库,能够很简单便捷的在Web网站或是Web应用程序上创建交互式图表。...21.Javascript InfoVIS Tool JavaScript InfoVis Toolkit 是一个在Web上创建可交互式的数据图表的JavaScript库。...它能够帮助用户以HTML或SVG的形式快速可视化展示,进行交互处理,合并平稳过渡,在Web页面演示动画。它既可以作为一个可视化框架(如Protovis),也可以作为构建页面的框架(如jQuery)。
24 | 分层和合成机制:为什么CSS动画比JavaScript高效 显示器是怎么显示图像的 每个显示器都有固定的刷新频率,通常是60HZ,也就是每秒更新60张图片,更新的图片都来自显卡中一个叫做前缓冲区的地方...这个显卡的作用就是合成新的图片,将生成的图片保存在后缓冲区,然后与前缓冲区进行交换,其刷新频率和显示器一致。...也就解释了为什么CSS动画要比JavaScript动画效率高。 25 | 页面性能:如何系统地优化页面 这里讨论的优化页面是指:如何更快的让页面显示和响应。...变换应用到虚拟DOM上时,不会着急去渲染页面,而仅是调整虚拟DOM的内部状态,这样操作虚拟DOM效率高且畅快。...引入了manifest.json来解决一级入口的问题,可以让开发者定义桌面图标、显示名称、启动信息、页面主题颜色等。
一、JacaScript动画的基本原理 二、JavaScript中的动画简介 三、常用的动画库 四、动画遇到卡顿的原因及解决方案 (一)卡顿原因 (二)解决方案(优化) ---- 引言——在设计前端页面时...添加徽章、图片,甚至是视频 11、Textillate.js:针对 CSS3 文本动画的简单插件 12、Firmin:使用 CSS 的转换和过渡功能来创造光滑的、带有硬件加速的动画的Javascript...当渲染时间超出16ms时,1秒钟内少于60个画面生成,就会有不连贯、卡顿的感觉,影响用户体验 2、页面渲染流程 一个页面帧在客户端的渲染分为以下几步 ①JavaScript:JavaScript实现动画效果...④Paint(绘制):在多个层上绘制DOM元素的文字、颜色、图像、边框和阴影等。 ⑤Composite(Render Layer合并):按照合理的顺序合并图层并显示到屏幕上。...浏览器在实际渲染页面的时候需要经过一系列的映射,由HTML页面构建出来的DOM树到最终的图层。
你可能已经熟悉了Chrome开发工具的基本功能。: DOM检查器、样式面板和JavaScript控制台。 但也有一些不太为人所知的特性可以显著提高你调试或开发应用的速度。 黑色主题 ?...Chrome开发工具的内置了黑色主题。你可以通过点击开发工具窗口右上角的三点图标,之后点击进入设置页面,切换主题。...保存日志是一个复选框,它允许在页面刷新后仍然保存日志。这在调试需要刷新页面的网站问题时非常有用,因为默认情况下,所有控制台输出的信息在页面刷新后都会被清除。...启用此选项后,控制台中会出现一个新的“导航”日志,它指向了刷新或是导航到的页面。 网络 + 日志过滤 ? 当调试具有大量网络请求或控制台日志的应用程序时,过滤特定类型的事件是很有用的。...当你使用结束后,Chrome将向你显示操作期间运行的具体代码。 调试用户遇到的问题 通常来说调试工具只有在你自己的机器上才会生效。
渲染流水线与 CSSOM 2.1 CSS 不会直接阻塞 DOM 构建 CSS 加载不会阻塞 DOM 树的解析,但会阻塞 DOM 树的渲染(解析白屏),即阻塞页面的显示,因为需要等待构建 CSSOM 完成后再进行构建布局树...2.3 白屏时间优化策略 从发起 URL 请求到首次显示页面内容,在视觉上会经历三个阶段: 请求发出到提交数据阶段,页面展示的还是之前页面的内容 提交数据后渲染进程会创建一个空白页面(解析白屏),等待...通常情况下,显卡和显示器的刷新频率是一致的,大多数为 60Hz (60FPS)。...前面章节《宏观视角下的浏览器》和《浏览器中的页面渲染》讲过,DOM 树生成后还要经历布局、分层、绘制、合成、渲染等阶段后才能显示出漂亮的页面,而渲染流水线任意一帧的生成方式,有 重排、重绘 和 合成 三种方式...,如"none",当媒体查询结果值计算为 false,浏览器仍会下载样式表,但不会在渲染页面之前等待样式表的资源可用 <link rel="stylesheet" href="test.css" media
为了减少阻塞渲染对页面加载速度的影响,可以采取一些优化策略,比如: 「异步加载资源」:使用 async 或 defer 属性加载 JavaScript 文件,让它们不会阻塞页面渲染。...然而,在文档中有一个更有趣的段落: ❝尽管 useEffect 被延迟到浏览器绘制之后,但它保证在「任何新的渲染之前」执行。React总是会在「开始新的更新之前刷新前一个渲染」的effect。...上面的案例说明了,useLayoutEffect可以在绘制之前强制提前刷新effect。...如果,我们不想在useLayoutEffect强制刷新useEffect。我们可以跳过状态更新。 使用ref直接对DOM进行修改。这样,React不会安排更新,也不需要急切地刷新effect。...因此,我们在浏览器显示我们的页面之前在“第一次通过”阶段渲染的内容就是在我们组件中渲染的内容:所有按钮的一行,包括“更多”按钮。
在开始之前,我们简单的介绍一下到底什么是jQuery? jQuery是一个优秀的Javascript框架。...jQuery能够实现很多的页面效果,下面的五个技巧是我们经常要用到的,所以简单的给大家翻译一下,供大家一起学习吧。...但是在XHTML 1.0中又没有“_blank”的标签属性。并且网站的拥有者也想在新窗口中打开所有外部链接时,能够保持访问者仍然在自己的网站上。...禁用右键 通常禁用右键是为了防止用户直接复制页面的信息或者是你想创建一个自己的独特的右键功能,下面我们来看一下是如何实现的: //check that the DOM is ready $(document...返回顶部链接 对于大篇幅的页面,可以通过增加“返回顶部”的链接来使用户方便地返回到页面顶部。这是一个简单的JavaScript实现的效果,我们也可以通过jQuery运用滚动效果增添一点点小技巧。
1、函数原型链 JS是一种基于对象的语言,但在ES6 之前是不支持继承的,为了具备继承的能力,Javascript 在 函数对象 上建立了原型对象prototype,并以函数对象为主线,从上至下,在JS...transiton 还有一个结束事件 transitionEnd,该事件是在CSS完成过渡后触发,如果过渡在完成之前被移除,则不会触发transitionEnd 。..., 然后在css中通过设置background-position来控制显示所需要的小图标,这就是Sprite图。...Iconfont,即字体图标,就是将常用的图标转化为字体资源存在文件中,通过在CSS中引用该字体文件,然后可以直接用控制字体的css属性来设置图标的样式,字体图标的好处是节省网络请求、其大小不受屏幕分辨率的影响...:20px;在ie6中距左侧元素的实际显示距离是40px,而在非ie6的浏览器上显示正常。
---- 页面数据解析 在之前的「计算机底层知识」系列中,我们讲过计算机CPU能直接解释运行的只有「本地代码」(机器语言)程序。...开发人员可以使用JavaScript或其他支持DOM的编程语言来访问和操作DOM。 ❝通过DOM,我们可以「动态地创建、修改、删除和查询文档的元素和内容,从而实现动态的Web页面交互和数据操作」。...❝绘制顺序是按照「层叠顺序」,而不是DOM顺序 ❞ 可以看到,虽然yellow的DOM顺序在green的DOM之前,但是在绘制到页面上时,yellow在green的上面。...帧 几个关于帧的知识点 「屏幕刷新频率」: 一秒内屏幕刷新的次数(一秒内显示了多少帧的图像),单位 Hz(赫兹),如常见的 60 Hz。 「刷新频率取决于硬件的固定参数」(不会变的)。...画面撕裂原因 屏幕刷新频是固定的,比如每16.6ms从buffer取数据显示完一帧,理想情况下帧率和刷新频率保持一致,即「每绘制完成一帧,显示器显示一帧」。
作用上类似于HTML里的iframe标签,但跑在独立进程中,主要出于安全性考虑 从应用场景来看,类似于于Android的WebView,外部对嵌入页面的控制权较大,包括CSS/JS注入、资源拦截等,而嵌入页面对外部的影响很小...('dom-ready', onDOMReady); // 与 webview.getWebContents().on('dom-ready', onDOMReady); 在功能上差不多等价,都只在页面载入时触发一次...实际上跳页或者刷新,注入的样式就没了,所以应该在需要的时候再补一发,这样做: webview.addEventListener('dom-ready', e => { // Inject CSS injectCSS...属性能够在webview内所有脚本执行之前,先执行指定的脚本 注意,要求其值必须是file协议或者asar协议: The protocol of script’s URL must be either...、BOM的特殊环境,我们熟悉的另一个类似环境是renderer 另外,preload属性的特点是只在第一次加载页面时执行,后续加载新页不会再执行preload脚本 executeJavaScript 另一种注入
dom更新到底在javascript事件循环的哪个阶段?...「前端每日一题v22.11.17」 昨天写了一篇文章,是javascript的事件循环机制,然后在某乎上也发了,在发的时候看到了一个问题,dom渲染在事件循环的哪个阶段?...看到这个问题的时候,我冷然一笑,这不是明显着么?肯定是在事件循环中的异步任务队列,任务队列又分为宏任务和微任务,dom更新在微任务队列清空之后,宏任务队列开始之前。...所以在浏览器中,js线程和gui线程是互斥的,只能允许一个线程进程任务的执行,js线程运行时,gui线程是不会运行的 有了这个基础,我们在讨论一下动画,这里涉及到一个概念,那就是刷新率 刷新率 我们平时也会经常听到刷新率这个词...在进入到setTimeout之前,在done之后就已经渲染到浏览器上了,刚开始直接显示出来一部分的原因是因为alert导致的,换成正常的阻塞流程的js就可以了 欢迎大家留言讨论,是不是因为alert的机制导致的在微任务结束之后
关于CORS的介绍请参考:跨域资源共享 CORS 详解 8、DOM对象 document document对象里保存着整个web页面dom结构,在页面上所有的元素最终都会映射为一个dom对象。...8、雪碧图 sprite 对于大型站点,为了减少http请求的次数,一般会将常用的小图标排到一个大图中,页面加载时只需请求一次网络, 然后在css中通过设置background-position来控制显示所需要的小图标...比如h1~h6这几个标签在SEO中的权值非常高,用它们作页面的标题就是一个简单的SEO优化。 2、页面渲染机制 页面渲染就是浏览器的渲染引擎将html代码根据CSS定义的规则显示在浏览器窗口中的过程。...8、Canvas 和 SVG Canvas 通过Javascript 来绘制 2D 图形。Canvas 是逐像素进行渲染的。在 Canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。...SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。你可以为某个元素附加 JavaScript 事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。
领取专属 10元无门槛券
手把手带您无忧上云