随笔分类 -  浏览器/v8引擎知识

摘要:最近看到一篇文章,详细讲述了浏览器是如何工作的,感觉非常好,所以决定一点点摘录及研究下。 V8 是由 Google 开发的开源 JavaScript 引擎,也被称为虚拟机,模拟实际计算机各种功能来实现代码的编译和执行。 一、为什么需要 JavaScript 引擎 我们写的 JavaScript 代码 阅读全文
posted @ 2021-01-26 21:47 古兰精 阅读(3060) 评论(0) 推荐(0) 编辑
摘要:虽然 ServiceWorker 和 PWA 正在成为现代 Web 应用程序的标准,但浏览器资源缓存变得比以往任何时候都复杂。本文涵盖了浏览器缓存的重点内容,具体包括: ServiceWorker 缓存与 HTTP 缓存的优先级? 主流浏览器实现的 MemoryCache 和 DiskCache 在 阅读全文
posted @ 2020-11-23 17:18 古兰精 阅读(751) 评论(0) 推荐(0) 编辑
摘要:一、线程和进程 首先我们来回顾下线程和进程的概念: 进程:CPU 进行资源分配的基本单位 线程:CPU 调度的最小单位 这是进程和线程最官方也是最常见的两个定义,但是这两个概念太抽象了,很难以理解。 通俗一点讲:进程可以描述为一个应用程序的执行程序,线程则是进程内部用来执行某个部分的程序。一个进程包 阅读全文
posted @ 2020-11-20 12:31 古兰精 阅读(218) 评论(0) 推荐(0) 编辑
摘要:一、IOS遇到的几个H5坑 1、ios端兼容input光标高度 问题描述:input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样。例如下图,左图是正常所期待的输入框光标,右边是ios的input光标。 原因分析:通常我们习惯用height属性 阅读全文
posted @ 2020-07-27 17:33 古兰精 阅读(2682) 评论(0) 推荐(1) 编辑
摘要:前端是一个苦逼的职业,不仅因为技术更新快,而且要会的东西实在太多了,更让人头疼的是,还要面临各种适配、兼容性问题。 为什么会有浏览器兼容性问题。还不是因为浏览器厂商太多了。关键是不同厂商,甚至同一厂商不同版本,对同一段CSS的解析效果也不一致,这就导致了页面显示效果不统一,也就带来了兼容性问题。 市 阅读全文
posted @ 2020-05-09 15:53 古兰精 阅读(979) 评论(0) 推荐(1) 编辑
摘要:在前端开发中,性能一直都是被大家所重视的一点,然而判断一个网站的性能最直观的就是看网页打开的速度。其中提高网页反应速度的一个方式就是使用缓存。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。 一、web缓存简介: web缓存是指一个 阅读全文
posted @ 2019-07-23 23:15 古兰精 阅读(457) 评论(0) 推荐(0) 编辑
摘要:之前遇到过一个奇怪的问题,在其他浏览器下一切正常,但在万恶的IE下,却一直不行。 具体问题场景就是:比如orderDetail页面出现问题,那么只要是路由跳转的,点第1次无法跳转,必须得点第2次才可以跳转,但是跳转过去之后,页面也是一片空白,不加载路由页面。然后控制台报错:strict 模式下不允许 阅读全文
posted @ 2019-05-10 17:08 古兰精 阅读(12234) 评论(0) 推荐(0) 编辑
摘要:接之前的此博客问题处理:js处理时间时区问题 由于 toLocaleString():据本地时间格式,把 Date 对象转换为字符串。总是会带有上午/下午,所以我加了参数:new Date('2019-09-12 23:33:33').toLocaleString('chinese', {hour1 阅读全文
posted @ 2019-05-10 12:28 古兰精 阅读(1304) 评论(0) 推荐(0) 编辑
摘要:问题背景:win7,谷歌浏览器上传选择图片之后,页面卡死无响应。 以前解决过类似问题就是input type="file"的accept属性当为通配符时,会出现这种情况,改为具体的图片类型即可。但是修改之后发现问题依旧,后来在网上查找解决方案,竟然是搜狗输入法的影响。然后切换搜狗输入法之后,竟然解决 阅读全文
posted @ 2019-04-02 14:27 古兰精 阅读(1041) 评论(0) 推荐(0) 编辑
摘要:一、问题背景 1、我们经常说的强缓存和协商缓存,那么想一想在项目上,什么文件用强缓存?什么文件用协商缓存呢?那么我这里就来说一说。 就拿前端SPA部署来说,打包过后的文件为 index.html、css、js、img 文件等, (1)index.html 应该不缓存,或者是设置 no-cache 的 阅读全文
posted @ 2019-01-23 22:18 古兰精 阅读(1842) 评论(0) 推荐(0) 编辑
摘要:在IOS5以上版本(不包含IOS5)中的Safari浏览器能正确解释出Javascript中的 new Date('2013-10-21') 的日期对象,但是在IOS5版本里面的Safari解释new Date('2013-10-21') 就不正确,在IOS5的Safari中返回的永远是"Inval 阅读全文
posted @ 2019-01-03 16:35 古兰精 阅读(567) 评论(0) 推荐(0) 编辑
摘要:前端缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。今天我们再来总结一下。 分类:前端缓存分为强缓存和协商缓存两种。 一、强缓存 强缓存主要使用 Expires、Cache-Control 两个头字段,两者同时存在 Cache-Control 优先级更高。当命中强缓存的时候,客户端不会 阅读全文
posted @ 2018-07-27 18:25 古兰精 阅读(3858) 评论(1) 推荐(1) 编辑
摘要:有些数据被使用之后,可能就不再需要了,我们把这种数据称为垃圾数据。 如果这些垃圾数据一直保存在内存中,那么内存会越用越多,所以我们需要对这些垃圾数据进行回收,以释放有限的内存空间。 一、不同语言的垃圾回收策略 通常情况下,垃圾数据回收分为手动回收和自动回收两种策略。 如 C/C++ 就是使用手动回收 阅读全文
posted @ 2018-05-11 21:37 古兰精 阅读(375) 评论(0) 推荐(0) 编辑
摘要:对于前端开发者来说,JavaScript 的内存机制是一个不被经常提及的概念 ,因此很容易被忽视。特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道 JavaScript 的内存机制是什么。 但是如果你想成为行业专家,并打造高性能前端应用,那么你就必须要搞清楚 阅读全文
posted @ 2018-04-22 18:03 古兰精 阅读(4267) 评论(0) 推荐(0) 编辑
摘要:在上篇文章中,我们讲了词法作用域、作用域链以及闭包,接下来我们分析一下这段代码: var bar = { myName:"time.geekbang.com", printName: function () { console.log(myName) } } function foo() { let 阅读全文
posted @ 2018-04-22 17:06 古兰精 阅读(631) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中我们讲到了什么是作用域,以及 ES6 是如何通过变量环境和词法环境来同时支持变量提升和块级作用域,在最后我们也提到了如何通过词法环境和变量环境来查找变量,这其中就涉及到作用域链的概念。 理解作用域链是理解闭包的基础,而闭包在 JavaScript 中几乎无处不在,同时作用域和作用域链还 阅读全文
posted @ 2018-04-02 17:08 古兰精 阅读(820) 评论(0) 推荐(0) 编辑
摘要:在移动端,有个很重要的概念,叫做懒加载,适用于一些图片资源特别多,ajax数据特别多的页面中,经常会有动态加载数据的场景中,这个时候,我们通常是使用监听scroll或者使用setInterval来判断,元素是否进入视图,其中scroll由于其特别大的计算量,会有性能问题,而setInterval由于 阅读全文
posted @ 2018-03-20 22:29 古兰精 阅读(765) 评论(0) 推荐(0) 编辑
摘要:前面章节我们已经了解了 JavaScript 中变量提升的相关内容,正是由于 JavaScript 存在变量提升这种特性,从而导致了很多与直觉不符的代码,这也是 JavaScript 的一个重要设计缺陷。 虽然 ECMAScript6(以下简称 ES6)已经通过引入块级作用域并配合 let、cons 阅读全文
posted @ 2018-01-10 16:42 古兰精 阅读(1520) 评论(0) 推荐(0) 编辑
摘要:讲解完宏观视角下的浏览器后,从这篇文章开始,我们就进入下一个新的模块了,这里我会对 JavaScript 执行原理做深入介绍。 今天在该模块的第一篇文章,我们主要讲解执行上下文相关的内容。那为什么先讲执行上下文呢?它这么重要吗?可以这么说,只有理解了 JavaScrip 的执行上下文,你才能更好地理 阅读全文
posted @ 2017-08-18 20:30 古兰精 阅读(644) 评论(0) 推荐(0) 编辑
摘要:构建一个网站服务看似简单:发送 HTML,浏览器识别出接下来需要加载什么资源。然后,我们耐心的等待页面就绪。 你不知道的是,这背后发生了很多事情。你有没有想过,浏览器是如何判断哪些资产需要以什么顺序被请求的? 一、什么是资产优先级? 现代浏览器用流式解析器来解析 HTML —— 在完全下载之前,就可 阅读全文
posted @ 2017-08-13 16:33 古兰精 阅读(548) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示