自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Web性能优化之如何评估网页性能——性能指标和度量工具介绍

对于大部分网站来说,性能是影响用户满意度和转化率的重要因素。关于web性能优化的书和文章有很多,本文主要从 web 性能的主要指标开始介绍、说明FP/FMP/HRT等主要性能指标的定义及场景,另外介绍了 RAIL 模型及各主流仿真/真实性能测量工具

2024-01-31 23:15:00 2491

原创 MySQL也开始支持JavaScript了

在2023年12月Oracle公司宣布MySQL将引入对JavaScript的支持,开发人员可以在 MySQL 数据库服务器中编写 js 存储过程。存储的程序将与GraalVM运行时一起运行。它在 MySQL 企业版中作为预览版提供,并且可以通过Oracle 技术网 (OTN)下载。

2024-01-23 21:00:00 1339

原创 前端代码优化之从系统区分处理的业务场景看如何优化代码中的if判断

本文从一个三端统一的技术场景中、不断发掘一段代码中存在的if判断问题。通过代码实例和策略模式实现,阐述了这类if语句优化的思路,希望能让开发者学到分析问题和解决问题的思维方式、掌握优化if逻辑的技巧,从而提高代码质量。

2023-10-16 13:13:37 156

原创 Browserslist 信息和配置使用整理

Browserslist 是一个根据目标浏览器(target browser)检查支持浏览器版本的 js 库。它是现代前端工程化不可或缺的工具,无论是处理 js 的babel还是处理 css 的postcss,凡是与垫片相关的,他们背后都有 Browserslist 的身影。然而不恰当的 browserslist 配置和使用轻则导致代码冗余,严重可能会影响 autoprefixer 或 babel 代码的线上兼容, browserslist 的配置还是需要引起重视。

2023-09-05 22:45:00 2566

原创 搭建一个AI对话机器人——前端ChatUI使用纪录

阿里 ChatUI的接入使用经验整理。ChatUI是一个适用于 React 项目的聊天机器人前端解决方案,包含丰富的对话组件,支持 PC/移动端样式响应式。使用简单,体积不算重,兼容性良好。不过文档及社区维护这块有提升的空间。

2023-05-31 16:54:23 11039 7

原创 图灵完备及TypeScript图灵完备性验证

任何可计算过程都可以用图灵机来模拟,具有图灵完备性的计算机语言,就被称为图灵完备语言。那么 TypeScript 是一门图灵完备语言吗?

2023-02-28 18:30:00 2348

原创 web仿真或实际内存分析应用及自动化方案

web/hybrid 开发者往往会忽略内存管理,在一些场景下会由于内存泄漏导致一些白屏卡顿和崩溃问题。本文介绍PC/移动端各种内存检测的工具、仿真及真实内存分析手段,以及介绍基于Puppeteer的自动化检测封装库 FuiteJs。

2022-12-27 20:54:35 948

原创 越来越快的jsRuntime——Bun

身处js第三时代的我们正在经历一些变化,Bun便是近期爆火的一个较新js runtime,号称性能碾压 Nodejs 和 Deno。由于目前Bun还处于起步阶段,本文记录基本使用和个人的选型评估,建议关注Bun的后续发展。...

2022-07-19 10:39:00 4090

原创 从ES规范和引擎细谈 js 中 parseInt 和 parseFloat 的执行机制

parseInt() 和 parseFloat() 这两个常用API还是会踩坑的,本文以ECMA规范为主来表述其执行机制,并用WebKit源码加以辅助说明,以此文梳理一下。

2022-02-23 10:57:09 1555

原创 计算机LCG/PCG/MWC/XorShift等PRNG算法,以及V8中Math.random()、webkit中crypto等随机算法的实现

计算机LCG/PCG/MWC/XorShift等PRNG算法,以及V8中Math.random()、webkit中crypto等随机算法的实现(github:https://github.com/MichealWayne,个人博客地址:https://blog.michealwayne.cn/)引言无论用哪种编程语言开发,都有可能会遇到随机数的需求。当然在开发过程中我们会之间调用API方法来实现,比如js的Math.random()、Python的random(),但其实现原理也是一个值得深究的问题。

2021-04-14 16:09:55 4190 1

原创 WebP图片格式处理和兼容使用

WebP图片的格式和兼容使用用了这么久的WebP图片,最近在项目中发现对其了解得还是很不够,便以此文整理记录WebP相关知识点。(github:https://github.com/MichealWayne,个人博客地址:https://blog.michealwayne.cn/)介绍WebP is a modern image format that provides superior lossless and lossy compression for images on the web. U

2021-04-08 10:57:53 6140

原创 React的ts类型检查与注意点

大纲React的ts类型检查与注意点配置*jsx项的选项常用检查函数组件的类型检查使用FC(Function Component)类型来声明函数组件定义 Props 类型Children默认 props 声明Dispatch接口泛型函数组件子组件声明Forwarding Refs类组件的类型检查继承 `ComponentReact的ts类型检查与注意点用TypeScript写React的时候,我们可以通过@types/...使用一些类型检查,本文记录这些检查方式的注意点。配置首先进行编译配置。配置很简

2020-09-25 10:46:29 6251

原创 snowpack和vite:noWebpack,无bundle的代表

noWebpack的代表:snowpack和vite欢迎使用Markdown编辑器背景snowpack支持情况上手使用安装初始化新项目旧项目迁移配置开发调试生产打包基本原理vite上手使用安装及初始化基本原理选型和展望相关链接欢迎使用Markdown编辑器之前Vue3.0生态的介绍提到了vite这个工具,借此文简单整理记录"no webpack"的相关内容。背景In 20192020, you should use a bundler because you want to, not becaus

2020-08-26 10:20:58 1206

原创 web网站和图片实现灰白效果

web网站和图片如何黑白化愿凛冬消散,再无国殇。——2020.04.04本文目录web网站和图片如何黑白化网站元素处理,CSS:filter1. filter2.filter: grayscale(percent)SVG effects for HTML使用内嵌SVGgray.svg内嵌gray.svg直接css引用svg图片处理前端:canvas处理图片服务端:ImageMagick和...

2020-04-04 21:27:21 944

原创 CSS_Houdini,JSinCSS的魔术师

CSS_Houdini,JSinCSS的魔术师Houdini是一组底层API,它们公开了CSS引擎的各个部分,从而使开发人员能够通过加入浏览器渲染引擎的样式和布局过程来扩展CSS。 Houdini是一组API,它们使开发人员可以直接访问CSS 对象模型 (CSSOM),使开发人员可以编写浏览器可以解析为CSS的代码,从而创建新的CSS功能,而无需等待它们在浏览器中本地实现。背景前端开发者...

2020-01-23 11:43:21 453

原创 js的第七种基本数据类型BigInt

js的第七种基本数据类型BigIntjs的第七种基本数据类型BigInt介绍创建类型判断运算方法BigInt.asIntN()BigInt.asUintN()BigInt和Number不允许隐式类型转换BigInt和String零值无穷和NaN判断兼容TypeScript相关链接BigInt 可能会成为自 ES2015 引入 Symbol 之后,增加的第一个新的内置类型。并且 BigInt 类型...

2019-11-13 21:45:42 2889

原创 Blob对象以及网页文件导出下载

Blob对象以及网页文件导出下载Blob对象以及网页文件导出下载1.Blob对象Blob构造函数Blob属性Blob.sizeBlob.type方法`Blob.slice([start[, end[, contentType]]])``Blob.close()`兼容情况*分片上传2.常用文件类型(MIME Type)3.实现一个前端CSV文件下载*CSV文件arrayToCSV利用Blob生成文件...

2019-10-24 11:19:58 1610

原创 web浏览器中的base64编码解码

Base64介绍Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个位元为一个单元,对应某个可打印字符。3个字节有24个位元,对应于4个Base64单元,及3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印字符号再不同的系统中不同。 ——wiki百科Base64...

2019-06-03 10:41:23 36379

原创 【js】for、forEach、map数组遍历性能比较

【js】for、forEach、map数组遍历性能比较先上结果:遍历时间上 for循环遍历 < for…of遍历 < forEach遍历 < for…in遍历 < map遍历背景常用的数组遍历方式有很多,如最经典的for循环 for (var i = 0; i < arr.length; i++) {}再者有了for…in for (var...

2018-09-17 21:02:23 10361 1

原创 由iconfont引起的svg、ttf、woff、woff2图标的研究及转换(svgs2fonts)

由iconfont引起的svg、ttf、woff、woff2图标的研究及其转换1.背景其实很早之前便想通过iconfont来实现图标管理和统一(一方面也是为了偷懒,不,是工程化),然而总总原因拖到了现在。个人感觉iconfont最大的优势有三点 - 矢量图标。相比切图,至少不会糊。 - 可控颜色。相比切图,至少可以换颜色。 - 方便管理和调用。相比切图,至少不会忘。 - 减少请...

2018-07-30 21:30:48 15694 6

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除