当前位置: 首页 > news >正文

网站开发付款分几步模具钢东莞网站建设

网站开发付款分几步,模具钢东莞网站建设,网络营销的功能是什么,河南省网架公司字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化 字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 ElementUI开发,源代码: github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer …

字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化

字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 + ElementUI开发,源代码:
github: https://github.com/HiToysMaker/fontplayer
gitee: https://gitee.com/toysmaker/fontplayer

笔记

最近把本地开发已久的项目部署到阿里云上,但是由于笔者买的套餐带宽有限,加载速度非常慢,而SPA又将所有js打包到一个文件中,导致首屏白屏很久。但是提高带宽又比较贵目前还没有必要。无奈之下,我将项目在线体验部署到Github Pages上,暂时速度可以接受。但是首屏加载时间的优化(主要集中在打包js大小)还是个棘手的问题,需要好好研究。目前我采取的方法有:

1. FontAweSome按需加载

原来加载了全部FontAweSome图标:
(main.ts中代码)

import { library } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { fas } from '@fortawesome/free-solid-svg-icons'
import { far } from '@fortawesome/free-regular-svg-icons'
import { fab } from '@fortawesome/free-brands-svg-icons'library.add(fas, far, fab)

现在替换成:
(main.ts中代码)

import { library } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import {faArrowPointer,faCircle,faPercent,faArrowDownWideShort,faPenNib,faSquare,faDrawPolygon,faImage,faFont,faTerminal,faSliders,faTableCells,
} from '@fortawesome/free-solid-svg-icons'
import {faHand,faSquare as faSquare_regular,faCircle as faCircle_regular,
} from '@fortawesome/free-regular-svg-icons'
library.add(faArrowPointer,faCircle,faPercent,faArrowDownWideShort,faPenNib,faSquare,faDrawPolygon,faImage,faFont,faTerminal,faSliders,faTableCells,faHand,faSquare_regular,faCircle_regular,
)

2. Element Icon按需引入

原来加载了全部图标:
(main.ts中代码)

import * as ElementPlusIconsVue from '@element-plus/icons-vue'for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component)
}

现在替换成:
(main.ts中代码)

import { Files, Edit, Upload, Download, Tickets, Setting, List, Tools } from '@element-plus/icons-vue'app.component('Files', Files)
app.component('Edit', Edit)
app.component('Upload', Upload)
app.component('Download', Download)
app.component('Tickets', Tickets)
app.component('Setting', Setting)
app.component('List', List)
app.component('Tools', Tools)

3. 将首屏不用的代码放到最后,防止阻塞页面

笔者项目中引入了opencv.js:

<script src="lib/opencv.js"></script>

opencv.js是个比较大的库,首屏也不需要用到,就放到了html最底端

4. 加载首屏loading动画

在首屏加载文件白屏时,加一个loading动画可以提升用户体验,注意loading动画的css最好放在html头部,而不能放在外部style.css中防止loading字样已经显示,而动画样式还没有加载。

在src/index.html中,添加以下代码:

<div class="empty" style="position: absolute;z-index: -99;top: 0;left: 0;right: 0;bottom: 0;display: flex;flex-direction: column;align-items: center;justify-content: center;
"><div class="enpty-tips">首次打开可能会有些慢,感谢耐心等待</div><div class="empty-loading" style="display: flex;flex-direction: row;gap: 20px;align-items: center;justify-content: center;margin-top: 48px;"><div class="loading-1" style="width: 14px;height: 14px;border-radius: 50%;background-color: black;"></div><div class="loading-2" style="width: 14px;height: 14px;border-radius: 50%;background-color: black;"></div><div class="loading-3" style="width: 14px;height: 14px;border-radius: 50%;background-color: black;"></div></div>
</div>
<style>body, html {width: 100%;height: 100%;position: relative;padding: 0;margin: 0;overflow: hidden;}.empty {.empty-loading {.loading-1 {animation: loading-1 2s;animation-iteration-count: infinite;}.loading-2 {animation: loading-2 2s;animation-iteration-count: infinite;}.loading-3 {animation: loading-3 2s;animation-iteration-count: infinite;}}}@keyframes loading-1 {0% {opacity: 1;}25% {opacity: 0.5;}50% {opacity: 1;}}@keyframes loading-2 {0% {opacity: 1;}50% {opacity: 0.5;}75% {opacity: 1;}}@keyframes loading-3 {0% {opacity: 1;}75% {opacity: 0.5;}100% {opacity: 1;}}
</style>

5. treeshaking

vite自动支持treeshaking,可以将程序中没有引用的模块清除掉,减小最终打包文件大小。

6. 可视化检查

可以使用rollup-plugin-visualizer库可视化查看各个模块大小,进行进一步排查处理。
在vite.config.ts中设置如下:

import { visualizer } from 'rollup-plugin-visualizer'export default defineConfig({plugins: [vue(),visualizer({open: true,})],//...
})

运行后会自动生成可视化分析图。

首屏加载时间性能优化是个需要深入研究的问题,笔者在这方面还非常初级,也非常渴望学习,解决项目中的问题,非常欢迎交流讨论!

http://www.yayakq.cn/news/274659/

相关文章:

  • 做旅游网站多少钱投资公司注册资金需要多少
  • 网站建站公司费用南宁seo规则
  • 网站建设的公司选择哪家好网站开发文档要求
  • 网站生成器中英文网站制作
  • 万网域名怎么绑定网站蓝杉互动网站建设
  • 网络推广最好的网站wordpress仿谷歌主题
  • 杭州做产地证去哪个网站wordpress彩色标签云设置方法
  • 用网站做平台有哪些有没有什么网站做兼职
  • 个人网站搭建步骤网站要精细是什么意思
  • 昭通网站建设公司山西 旅游 英文 网站建设
  • 建设网站公司中燕郊网站建设
  • 如何知道网站是否备案过网站宽度一般是多少
  • 承德住房和城乡建设局网站关闭了怎么创建教育网站
  • 淮安网站开发邢台建设网
  • 关键词挖掘工具网站广州市网络seo推广
  • 免费自己做网站手机软件如何提升网站alexa排名
  • 东莞网站制作公司谷歌外贸平台推广需要多少钱
  • 移动网站视频主持人网网站集群建设必要性
  • 成都招聘网站建设国内做网站用的程序
  • 网站推广与优化平台网站怎么做二维码
  • 平面广告怎么做商丘优化公司
  • 自己做的网站打不开了营销策划书
  • 做自媒体网站杭州公司注册地址租赁一般多少钱
  • 汽车网站的建设方向黄山北京网站建设
  • 网站如何去分析南昌网站建设公司好么
  • 网站怎么做qq登录界面云南个旧建设局网站
  • 网站头部导航代码源代码查看wordpress文件夹
  • 济宁网站建设 企诺为什么建设银行的网站打不开
  • 做一个小网站需要多少钱wordpress 初始化 数据库连接
  • 沧州哪家做网站好河北网站开发多少钱