备案 控制台
开发者社区 开发与运维 文章 正文

前端性能优化实践之代码层面更改(3)

简介: 前端性能优化实践之代码层面更改(3)

1、JS 开销

  • JS 不仅需要 通过网络加载进来,而且需要 解析/编译,执行, 都会耗时,并且相对于 图片和 css 会消耗更多的时间
  • 此处对比 引入 js 和 引入 图片的 时间及处理对比

网络异常,图片无法展示
|

  • 并且 在 performance 中也可看到 其实 js 占了很多的时间

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 那既然 js 开销这么大 如何解决这个事情 ?

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 后面会详细 写这部分内容  敬请期待~

2、配合 V8 有效代码优化 ?

  • 简单来讲 帮助优化器 正确优化, 而不是帮倒忙

网络异常,图片无法展示
|

  • 敲一个 例子对比 一下
const { performance, PerformanceObserver } = require("perf_hooks");
const num1 = 1;
const num2 = 3;
function add(a, b) {
  return a + b;
}
performance.mark("start");
for (let i = 0; i < 1000; i++) {
  add(num1, num2);
}
add(num1, "test");
for (let i = 0; i < 1000; i++) {
  add(num1, num2);
}
performance.mark("end");
const observer = new PerformanceObserver((list) => {
  console.log(list.getEntries()[0]);
});
observer.observe({ entryTypes: ["measure"] });
performance.measure("测量测试", "start", "end");
复制代码
  • 添加 add(num1, "test") 时 优化器会尝试优化 导致用时更多

网络异常,图片无法展示
|

  • 不添加时

网络异常,图片无法展示
|

  • 所以代码中应该 尽量减少 这种操作

网络异常,图片无法展示
|

  • 准确来说 遇到函数声明 暂时跳过 不看函数内容,调用时才进入函数内部进行解析,高效的做法是 看到函数已经开始准备预先解析,遇到函数调用时,可更快执行函数和解析

3、函数 优化

网络异常,图片无法展示
|

  • 举个反面例子
  • 新建一个 testFuc.js 并在 App 引用,再更改一下 webpack.config.js 输入和输出
  • 这就是一个 testFuc.js 普通的函数

网络异常,图片无法展示
|

  • App.js 引入并在 constructor 调用

网络异常,图片无法展示
|

  • 更改 webpack 配置

网络异常,图片无法展示
|

  • 打包结果

网络异常,图片无法展示
|

  • 去 performance/network 看一下 时间

网络异常,图片无法展示
|

  • 怎么解决 ?  正面例子
  • 解决的思想 就是 使得 解析器 看到函数时 就同时准备解析

比如此处 函数就给后面加上括号,然后再对比 加载时间,我这自动保存会去掉 括号,暂时不写出来

  • 另外一个问题 即使加了括号,后续 js 压缩也会去掉,现在 已经解决了这个问题 , uglify
  • 兼容之前版本 可以使用 optimize.js   github.com/nolanlawson…

4、对象优化 ?(重要:new 一个对象 haha)

网络异常,图片无法展示
|

网络异常,图片无法展示
|

1、避免隐藏类调整

  • 此处需要 调整一下顺序就可,也就是说实例化不同的内容时 统一一下顺序 比如 第一个是 color number 第二个也要写成 先color 后number

网络异常,图片无法展示
|

2、避免实例化后添加新属性

  • 此处 说明创建时 就一次性创建需要的内容

网络异常,图片无法展示
|

3、将 array-like 先转为 Array 再进行便利和处理

网络异常,图片无法展示
|

4、避免读取超过 数组长度

  • 这个在敲代码 应该注意 不过执行也会报错,出错概率较低

网络异常,图片无法展示
|

5、避免元素类型转换

  • 类型越具体 越利于优化,改动类型不利

网络异常,图片无法展示
|

网络异常,图片无法展示
|

5、HTML 优化  ?

网络异常,图片无法展示
|

  • 写 meta 只写自己需要的部分
  • html5 语义化标签
  • js 放在 文档加载尾部

6、css 优化  ?

网络异常,图片无法展示
|



马克波罗
目录
相关文章
1941623231718325
|
1天前
|
缓存 监控 前端开发
使用Angular进行企业级前端开发:实践与探索
【5月更文挑战第14天】本文探讨了使用Angular进行企业级前端开发的实践与技术要点。Angular,Google的开源JavaScript框架,以其组件化设计、响应式开发和依赖注入等特点成为首选。文章涵盖项目初始化、组件化、状态管理、路由、性能优化和测试部署等方面,强调了在企业级应用中如何利用Angular构建高效、稳定和可维护的前端解决方案。
1941623231718325
10 3
Yawesh
|
1天前
|
JSON 前端开发 搜索推荐
BoostCompass( http_server 模块 | 项目前端代码 )
BoostCompass( http_server 模块 | 项目前端代码 )
Yawesh
26 4
程序猿~厾罗
|
1天前
|
前端开发 JavaScript API
深入理解前端开发:从基础到实践
深入理解前端开发:从基础到实践
程序猿~厾罗
17 1
桃李春风一杯酒
|
1天前
|
移动开发 前端开发 UED
【专栏:HTML与CSS前端技术趋势篇】渐进式增强与优雅降级在前端开发中的实践
【4月更文挑战第30天】前端开发中的渐进式增强和优雅降级是确保跨浏览器、跨设备良好用户体验的关键策略。渐进式增强是从基础功能开始,逐步增加高级特性,保证所有用户能访问基本内容;而优雅降级则是从完整版本出发,向下兼容,确保低版本浏览器仍能使用基本功能。实践中,遵循HTML5/CSS3规范,使用流式布局和响应式设计,检测浏览器特性,并提供备选方案,都是实现这两种策略的有效方法。选择合适策略优化网站,提升用户体验。
桃李春风一杯酒
31 4
桃李春风一杯酒
|
1天前
|
Dart 前端开发 测试技术
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
【4月更文挑战第30天】随着Flutter在跨平台开发的普及,保证代码质量成为开发者关注的重点。优质代码能确保应用性能与稳定性,提高开发效率。关键策略包括遵循最佳实践,编写可读性强的代码,实施代码审查和自动化测试。重构实践在项目扩展时尤为重要,适时重构能优化结构,降低维护成本。开发者应重视代码质量和重构,以促进项目成功。
桃李春风一杯酒
22 0
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
桃李春风一杯酒
|
1天前
|
Dart 前端开发 安全
【Flutter前端技术开发专栏】Flutter中的线程与并发编程实践
【4月更文挑战第30天】本文探讨了Flutter中线程管理和并发编程的关键性,强调其对应用性能和用户体验的影响。Dart语言提供了`async`、`await`、`Stream`和`Future`等原生异步支持。Flutter采用事件驱动的单线程模型,通过`Isolate`实现线程隔离。实践中,可利用`async/await`、`StreamBuilder`和`Isolate`处理异步任务,同时注意线程安全和性能调优。参考文献包括Dart异步编程、Flutter线程模型和DevTools文档。
桃李春风一杯酒
22 1
【Flutter前端技术开发专栏】Flutter中的线程与并发编程实践
桃李春风一杯酒
|
1天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
桃李春风一杯酒
21 0
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
桃李春风一杯酒
|
1天前
|
Dart 前端开发 Android开发
【Flutter前端技术开发专栏】Flutter中的平台特定代码实现
【4月更文挑战第30天】Flutter旨在实现跨平台移动应用开发,但有时需针对iOS或Android编写特定代码。平台通道是关键机制,允许Dart代码与原生代码交互。通过`MethodChannel`等实现跨平台通信,然后在iOS和Android上响应调用。条件编译则在编译时决定特定平台代码。本文展示了如何在Flutter中处理平台特定功能,包括示例代码和总结。
桃李春风一杯酒
21 0
【Flutter前端技术开发专栏】Flutter中的平台特定代码实现
桃李春风一杯酒
|
1天前
|
Dart 前端开发 Android开发
【Flutter前端技术开发专栏】Flutter与原生代码的集成与交互
【4月更文挑战第30天】本文探讨了如何在Flutter中集成和交互原生代码,以利用特定平台的API和库。当需要访问如蓝牙、特定支付SDK或复杂动画时,集成原生代码能提升效率和性能。集成方法包括:使用Platform Channel进行通信,借助现有Flutter插件,以及Android和iOS的Embedding。文中通过一个电池信息获取的例子展示了如何使用`MethodChannel`在Dart和原生代码间传递调用。这些技术使开发者能充分利用原生功能,加速开发进程。
桃李春风一杯酒
23 0
【Flutter前端技术开发专栏】Flutter与原生代码的集成与交互
桃李春风一杯酒
|
1天前
|
前端开发 开发者
【专栏】BEM(Block-Element-Modifier)是一种前端命名规范和架构方法,旨在创建清晰、可维护的代码结构。
【4月更文挑战第29天】BEM(Block-Element-Modifier)是一种前端命名规范和架构方法,旨在创建清晰、可维护的代码结构。它包括Block(独立功能单元)、Element(Block的子元素)和Modifier(表示状态或变体)。BEM的特点包括命名一致性、模块化设计、清晰结构和可复用性,适用于代码组织、样式管理、组件化开发和团队协作。虽然命名较长和学习成本是其局限性,但BEM在提升代码质量和效率方面具有显著优势,是前端开发的重要工具。
桃李春风一杯酒
10 0

热门文章

最新文章

  • 1
    对象存储OSS产品常见问题之前端直传视频获取视频的长度获得多少秒如何解决
  • 2
    前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
  • 3
    前端安全:Vue应用中防范XSS和CSRF攻击
  • 4
    Node.js在前端的妙用:打造更出色的Web体验
  • 5
    🌟前端使用Lottie实现炫酷的开关效果🌟
  • 6
    前端舞台上的优雅独舞:代码规范的奥秘
  • 7
    relectron框架——打包前端vue3、react为pc端exe可执行程序
  • 8
    利用深度学习技术提升前端图像处理性能
  • 9
    探寻前端巨变:从HTML到现代框架的发展历程
  • 10
    前端vue3分享——项目封装axios、vite使用env环境变量
  • 1
    构建响应式Web界面:现代前端开发的最佳实践
    59
  • 2
    探索现代Web应用中的微前端架构
    35
  • 3
    构建高效前端项目:模块化与组件化策略
    39
  • 4
    前端发展趋势:WebAssembly、PWA 和响应式设计
    35
  • 5
    前端开发新趋势:Web3、区块链和虚拟现实
    44
  • 6
    架构的未来:微前端与微服务的融合
    75
  • 7
    前端模块规划
    17
  • 8
    调试前端时,在浏览器上修改参数并重新调用接口
    53
  • 9
    大屏前端技术要求
    27
  • 10
    优酷OTT互联网大屏前端技术实现
    19
  • 相关课程

    更多
  • 移动Web前端开发
  • Ajax 前端开发入门与实战
  • 零基础学前端HTML+CSS
  • 前端开发CSS基础
  • 前端开发框架Bootstrap使用教程
  • 相关电子书

    更多
  • Vue.js 在前端服务化上的探索与实践
  • 阿里文娱大前端技术实践
  • 前端代码是怎样智能生成的
  • 相关实验场景

    更多
  • 如何快速体验知识检索增强应用
  • 每个IT人都想学的“Web应用上云经典架构”实战
  • 前端开发基础3:CSS3常见显示属性
  • 语言入门-1:环境构建
  • 前端开发基础6:Node.js和LESS预编译工具
  • 前端开发基础2:VS Code和Edge的联动开发
  • 下一篇
    2024年阿里云免费云服务器及学生云服务器申请教程参考

    深圳SEO优化公司重庆建设网站报价芜湖网站优化软件信阳网站seo优化价格龙岗阿里店铺运营多少钱厦门企业网站改版价格长沙网络营销报价舟山网站推广多少钱随州网站建设价格海西设计公司网站滨州SEO按天扣费价格福田网站推广系统报价张掖模板网站建设价格衢州百度竞价公司泸州网站建设设计哪家好坪山网站优化按天计费贵港网站制作设计公司廊坊设计公司网站多少钱上海外贸网站制作价格辽源高端网站设计公司醴陵营销网站凉山关键词按天收费多少钱南通网络营销哪家好淄博品牌网站设计价格天水模板推广平凉网站优化推广公司荆州优秀网站设计哪家好阜阳英文网站建设推荐钦州网络推广哪家好云浮百度爱采购公司长治网站优化推广报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化