码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 前端性能优化


    前端主要是交互,那么其优化是为了响应更快,展示更快

    1.做(三省):懒

    能不能不做?

    不变的:减少渲染+缓存静态资源;

    如果要做,能不能拖延?

    紧急缓慢/万一不用做了

    增改的:

    延迟非必要+预处理必要;

    拖不下去的时候,能不能少做?

    少做:压缩体积,多路复用

    2.能否更快更好

    SEO搜索引擎优化_搜索引擎seo中keywords-CSDN博客

    3.预防

    前端内存分析、优化、检测泄露-CSDN博客

    目录

    不变:不做

    React.memo

    缓存

    使用 CDN(内容分发网络):托管全球分布的 CDN 服务器

    拖延

    组件动态导入import

    React:lazy懒加载、Suspense组件包裹异步组件

    ()=>import():路由懒加载

    少做

    资源压缩

    长列表滚动优化

    自适应防抖、监听元素尺寸变化


    不变:不做

    静态资源

    React.memo

    缓存

    使用 CDN(内容分发网络):托管全球分布的 CDN 服务器

    1. 就近访问: 当用户请求访问某个静态资源时,CDN 会自动将用户请求路由到离用户最近的边缘服务器。这样可以减少网络延迟,提高资源的加载速度。

    2. 负载均衡: CDN 使用负载均衡算法确保各个边缘服务器之间的负载均衡,避免某个服务器过载,提高整体性能。

    拖延

    类似“即时编译”(Just-In-Time Compilation, JIT):

    广泛应用于现代解释型语言,

    如 Java 的 JVM(Java Virtual Machine)和 JavaScript 的 V8 引擎。

    JIT 编译器会将经常执行的代码编译,提高程序运行的性能。

    组件动态导入import

    React:lazy懒加载、Suspense组件包裹异步组件

    1. 返回一个懒加载组件包装器,内部包含一个动态 import() 函数。

    2. 当应用程序首次渲染时,懒加载组件包装器会被渲染为一个空占位符,而不会立即加载真正的组件代码。

    3. 当应用程序运行到需要渲染懒加载组件的代码时,动态 import() 函数才会被触发,开始异步加载实际的组件代码。这个过程是非阻塞的,所以应用程序可以继续进行其他操作。

    4. 一旦组件代码加载完成,React.lazy 会自动渲染实际的组件内容,替换之前的占位符。

    1. import React, { Suspense, lazy } from 'react';
    2. const LazyComponent = lazy(() => import('./LazyComponent'));
    3. function App() {
    4. return (
    5. <Suspense fallback={<div>Loading...div>}>
    6. <LazyComponent />
    7. Suspense>
    8. );
    9. }

    OtherComponent 只有在其首次需要渲染时才会被加载,

    组件加载期间,用户将看到 "Loading..." 消息

    ()=>import():路由懒加载

    通过import()的方式导入,webpack在打包时会单独将它列为一个块,

    当符合判断条件时才会尝试去加载这个文件。

    1. const RouterView = () => import('./components/RouterView.vue');
    2. const router = new VueRouter({
    3. routes: [
    4. { path: '/path', component: RouterView }
    5. ]
    6. });

    少做

    资源压缩

    长列表滚动优化

    自适应防抖、监听元素尺寸变化

  • 相关阅读:
    二分图匹配(Hopcroft-Carp 的算法)
    jquery---动画
    《警世贤文》摘抄:处人篇、受恩篇、宽人篇、听劝篇、劝善篇(多读书、多看报、少吃零食多睡觉)
    功能测试报告的编写
    HUAWEI华为MateBook X Pro 2021款 i7 集显(MACHD-WFE9Q)原装出厂Win10系统20H2
    视频定格合璧,批量剪辑轻松插入图片
    搭建自己的搜索引擎之五
    idea启动Tomcat时控制台出现乱码的解决(亲测有效)
    电路设计中的 “热地” 和 “冷地”
    【Redis精通之路】数据类型(2)
  • 原文地址:https://blog.csdn.net/qq_28838891/article/details/137745928
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号