首页 > 其他分享 >Web前端性能优化

Web前端性能优化

时间:2024-01-25 18:58:23浏览次数:25  
标签:Web 请求 渲染 前端 图片 页面 优化 资源 加载

性能优化是前端开发无法避免的点,给客户带去良好的访问体验也是开发人员必须关注的问题。

前端性能优化大体分为两个部分:代码优化、资源及其他优化,本文主要记录资源及其他优化要怎么做。

1、CSS样式文件在页面头部引入,Javascript文件在页面尾部引入

页面加载单线程可能会阻塞页面的加载。

2、服务端渲染(SSR)

前后端分离的开发方式,页面构建在客户端渲染,很容易造成页面初次渲染的白屏。

制作SSR页面,能够使服务器直接返回页面,减少首屏的渲染时间。

3、gzip压缩

服务器配置支持gzip压缩的资源传输方式,这样在浏览器支持gzip解析的时候,服务器就可以推送gzip的资源。

4、静态资源cnd缓存

静态资源如css、js、图片、应用程序安装包等可以做cdn缓存,把资源发布到全国或全球各地的节点,使用户可以更快访问到。

5、静态资源使用单独域名

浏览器请求有并发限制,同一域名在同一时间请求的资源有数量限制,所以给静态资源使用单独域名可以减少请求资源的数量,也方便做cdn缓存和分流。

6、字体图标代替图片图标

页面中一些通用的小图标,如箭头、加号,可以使用字体图标,以减少请求次数,使渲染更快。

7、精灵图

页面中一些带有功能特色的小图标,如购物车、表情,可以使用精灵图,让一张图上带多个小图,然后使用css背景定位来显示在合适的位置,大大减少请求次数。

8、图片懒加载

多图片的页面初次渲染时,为了使渲染更快,可以先设置一张加载图,当页面滚动到可视区域时再替换位真正的图片。

如果页面有尺寸很大的高清图,可以先渲染分辨率低缩略图,在页面基本构建完成后再替换为高清图。

9、图片预加载

在页面加载完成之后请求一些其他地方需要的图片,当进去那个页面或位置之后,浏览器可以从缓存里直接读取该图片。

10、使用PNG格式的图片

PNG是Web图像中最通用的格式,它是一种无损压缩格式。

11、小于10k的图片打包为base64格式

使用base64格式传输图片,虽然数据大小会大1/3,但是可以减少一个http请求。

12、尽量减少HTTP请求的数量

html文件里的css、js等资源,每一个文件都会有一个http请求,而减少http请求的次数可以减少资源加载的时间。

另外浏览器也会限制同一个域名同一时间建立的tcp连接的数量。

13、使用HTTP2.0

http2.0采用二进制格式传输数据而不是文本格式,减小数据大小;对消息头采用Hpack进行压缩,节省消息头占用的网络流量;采用异步连接多路复用;Server Push使服务器端能够更快的把资源推送给客户端;且能够保持与HTTP 1.1语义的向后兼容。

这些都优化了服务器端的数据传输。

14、设置浏览器缓存策略

优化浏览器的缓存方式,可以合理的加快页面的加载。

15、白屏时间做加载动画

白屏时制作加载动画,增强用户体验。

 

标签:Web,请求,渲染,前端,图片,页面,优化,资源,加载
From: https://www.cnblogs.com/wuxxblog/p/17986201

相关文章

  • websocket 包括心跳机制
    https://zhuanlan.zhihu.com/p/6643681141.创建websocket对象,初始化创建对象,开启、onmsg、关闭开启,开始心跳检测发送传递信息(ifwebsocket对象存在,且处于open状态onmsg,接收服务器传送过来的信息,进行业务操作关闭,销毁心跳检测,清除心跳......
  • APISIX同时代理websocket和http请求 websocket无法正常工作
    1.配置了一个路由同时代理websocket和http请求 2.打开了websocket支持,websocket还是无法工作  3.定位3.1通过postman分别走apisix和不经过apisix建立websocet连接,发现经过apisix也能成功建立连接,但是10秒左右就自己断开了。  3.2思考3.3决定试一下是否和超时配置......
  • 前端二进制文件下载
    //下载模板exportfunctiondownTemplate(data={}){returnrequest({url:`${apiPrefix}/system/user/importTemplate`,method:'POST',data,responseType:'blob'//需要添加返回类型})}constres=awaitdownTemplate(......
  • 量化交易中组合优化的那些事儿
    简介组合优化,本质上是LP和QP的凸优化问题,设定多个交易约束,最大化某一目标函数。/n比如:非空约束下,求解资产占比,使得给定风险下,收益最大化或者同收益情况下,风险最小化。方法论确定目标函数确定约束算法求解拓展不同的应用场景,不同的侧重点,我们可以建立不同的优化目标和约......
  • 前端工程化解决方案webpack使用小结
    前端工程化解决方案webpack,模块化、组件化、规范化、自动化,使得前端开发更加高效。功能:代码压缩混淆、处理浏览器端js的兼容性、以模块化的方式处理项目中的资源webpack插件:clean-webpack-plugin清除dist文件夹之前打包生成的文件使用步骤:先安装 再在webpac......
  • K8s笔记-使用 Service 把前端连接到后端
    1配置configMap1.1配置cm[root@k8s-master~]#kubectlexec-itnginx-deploy-78d8bf4fd7-2xtd2-ntest--sh-c"cat/etc/nginx/nginx.conf"[root@k8s-master~]#kubectlexec-itnginx-deploy-78d8bf4fd7-2xtd2-ntest--sh-c"cat/usr/share/ngi......
  • miniweb开源的迷你HTTP服务器端软件
    前言全局说明MiniWeb是一个用C语言写成的HTTP服务器端软件,具有资源占用少、响应快速、跨平台(POSIX、*nux、Windows)等优点,支持常用的GET、POST算法及音/视频流媒体应用,可用来构建WEBSITE站点或VOD服务器等。MiniWeb是一个针对嵌入式应用而开发的微型WebServer,它占用资源少,工......
  • Web server failed to start. Port 8080 was already in use.
    场景上午在启动程序时,发现端口被占用,启动失败了***************************APPLICATIONFAILEDTOSTART***************************Description:Webserverfailedtostart.Port8080wasalreadyinuse.Action:Identifyandstoptheprocessthat'slisteni......
  • 前端小知识
    一、input框限制1. 只能输入数字代码(小数点也不能输入)<inputonkeyup="this.value=this.value.replace(/\D/g,'')"onafterpaste="this.value=this.value.replace(/\D/g,'')">2. 只能输入数字,能输小数点<inputonkeyup="if(isNaN(value))e......
  • 手写web框架
    自定义web框架框架功能"""功能视图用户访问指定url获取数据库数据,并返回到页面"""wsgiref模块#01文件结构"""urls.py 路由与视图函数对应关系views.py 视图函数(后端业务逻辑)templates文件夹 专门用来存储html文件"""#按照功能的不同拆分之后......