浏览器性能优化

IIFE惰性函数

有一些函数在运行时需要进行一些判断,但是这个判断只需要执行一次,代码一旦运行判断结果就不会改变,这样的函数称为惰性函数,可以使用下面的手段来进行优化

javascript 复制代码
// 优化前,每次调用都需要进行一次判断
function doThing() {
	if(globalThis === 'window') {
		// do something in browser
	} else if(globalThis === 'global') {
		// do something in nodejs
	}
}

// 这样优化过后doThing就是一个已经进行过判断的函数,不必每次执行时都判断
doThing = (() => {
	if(globalThis === 'window') {
		return function() {
			// do something in browser
		}
	} else if(globalThis === 'global') {
		return function() {
			// do something in nodejs
		}
	}
})()

冻结对象

在Vue中有一些数据仅仅只做展示而不回去修改它,这些数据我们就可以冻结起来,被冻结的对象讲无法进行任何修改

javascript 复制代码
// 加入我们拿到了一个10万条数据的数据,这样做会导致10w条数据全部被创建为响应式对象,十分消耗性能
this.list = getList();

// 如果只是展示数据,那么可是将对象冻结,Vue做了相关的优化,不会将被冻结的对象创建为响应式
// 被冻结的对象会变为只读属性,无法进行任何修改
this.list = Object.freeze(getList());

// 通过Object.isFrozen() 可以判断一个对象是否被冻结
let flag = Object.isForzen(this.list);
相关推荐
想学后端的前端工程师1 分钟前
【Java集合框架深度解析:从入门到精通-后端技术栈】
前端·javascript·vue.js
VcB之殇6 分钟前
git常用操作合集
前端·git
yinuo32 分钟前
前端跨页面通讯终极指南⑧:Cookie 用法全解析
前端
小鑫同学33 分钟前
vue-pdf-interactor 技术白皮书:为现代 Web 应用注入交互式 PDF 能力
前端·vue.js·github
GISer_Jing44 分钟前
Nano Banana:AI图像生成与编辑新标杆
前端·javascript·人工智能
csdn_aspnet1 小时前
用100行實現HTML5可存檔塗鴉版
javascript
布茹 ei ai1 小时前
城市天气查询系统 (City Weather Dashboard)
javascript·vue.js·html·css3·开源软件·天气预报
gyx_这个杀手不太冷静1 小时前
上线前不做 Code Review?你可能正在给团队埋雷!
前端·代码规范·团队管理
全栈老石1 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·vue.js·架构
weixin_462446231 小时前
【原创实践】使用 shell 脚本批量创建 Linux 用户并生成随机密码
linux·服务器·前端