浏览器性能优化

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);
相关推荐
Komorebi゛1 分钟前
【Vue3 + Element Plus】Form表单按下Enter键导致页面刷新问题
前端·javascript·vue.js
踢球的打工仔7 分钟前
typescript-基本类型
前端·javascript·typescript
dly_blog9 分钟前
Vue 组件通信方式大全(第7节)
前端·javascript·vue.js
枫叶丹418 分钟前
ModelEngine应用编排创新实践:通过可视化编排构建大模型应用工作流
开发语言·前端·人工智能·modelengine
郭小铭21 分钟前
将 Markdown 文件导入为 React 组件 - 写作文档,即时获取交互式演示
前端·react.js·markdown
JAVA+C语言21 分钟前
CSS 继承:核心概念 + 实用解析
前端·css
橙某人23 分钟前
LogicFlow 交互新体验:告别直连,丝滑贝塞尔轨迹实战!🍫
前端·javascript·vue.js
林太白25 分钟前
docker安装以及部署node项目
前端·后端·docker
OpenTiny社区39 分钟前
【博文精读】Chrome CSS 2025年回顾
前端·css
m0_672656541 小时前
JavaScript性能优化实战技术文章大纲
开发语言·javascript·性能优化