首页 > 其他分享 >前端优化之高并发处理

前端优化之高并发处理

时间:2023-07-19 17:34:59浏览次数:39  
标签:浏览器 请求 前端 页面 并发 HTTP 之高 图片

大部分的高并发处理基本都是在后端处理,但是在部分特殊情况下,后端无法阻止用户行为,需要前端做配合。例如在抢购、秒杀等场景。

高并发是什么?

对此,我们首先需要简单的去了解一下,高并发是什么?

高并发是指在极短单位时间内,有很多用户同时的访问同一 API 接口或者 Url 地址,造成极多个请求同时发起到服务器。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。

浏览器请求限制

浏览器在向后端发送http请求是,就会有高并发处理。使用HTTP/2.0,理论上HTTP/2.0协议支持在同一个TCP连接上发送无限个HTTP请求,且这些请求的生命期可以重叠。但是实际上,浏览器并不会同时将所有请求就发过去,还是会有时间间隔。

前端可以做些什么?

虽然浏览器已经对 http 请求并发设置了限制,但是并不能很好的处理掉不必要的请求。而且在部分情况下,用户较多,并且在同一时间端多次请求,如图:

(浏览器到服务器部分的请求会被后台拒掉甚至可能会导致后台崩溃)

 

浏览器并不会过滤掉一部分请求,只是会分批发送。这时候极有可能会造成卡顿,甚至崩溃。所以如果,在浏览器发送请求时,可以杜绝掉一部分非必要请求就好了。

 

 处理方法

图片方面

1.CSS sprites

俗称 CSS 精灵、雪碧图,雪花图等。即将多张小图片合并成一张图片,达到减少 HTTP 请求的一种解决方案。可通过 CSS中的background 属性访问图片内容。这种方案同时还可以减少图片总字节数,节省命名词汇量。

2.压缩图片

图片占据资源极大,因此尽量避免使用多余的图片,使用时选择最合适的格式大小,然后使用智图压缩,同时在代码中用Srcset来按需显示。(切记不要过分压缩 可能会导致图片迷糊)

3.图片使用Base64编码

减少页面请求数,采用Base64的编码方式将图片直接嵌入到网页中。(但是这样做会有一个弊端,就是base64解码也是需要消耗时间的)

文件方面

1.合井脚本和样式表

将部分js和css模块合并,多个合并为单个。(无需过度合并,要考虑后期接你代码的兄弟)减少请求次数。

代码压缩

1.js 代 码 压 缩

JavaScript 压 缩 的 原 理 一 般 是 去 掉 多 余 的 空 格 和 回 车 、 替 换 长 变 量 名 、 简 化 一 些 代 码 写 法 等 (有的时候简化写法性能可能会降低,这点按照实际情况来吧)。

2.css 代 码 压 缩

原理和JS压缩原理类似,同样是去除空白符、注释井且优化一些css语义规则等。(去除注释这种阴间操作的话,咱尽量不做昂)

过滤请求

1.减少访问API或者不访问

使用防抖节流等方式,降低请求次数。例如1秒只许点击1次。

2.利用缓存存放数据

将一些实时性修改,但是不必须发送给后端存储的数据,放在缓存中。例如修改头像,但是还没点确定修改时。

3.避免高频刷新页面获取数据

 做一个限定,避免高频刷新带给服务器的压力。例如可以几秒内刷新页面中,只获取一次页面样式或者列表等数据。

 

 

 

标签:浏览器,请求,前端,页面,并发,HTTP,之高,图片
From: https://www.cnblogs.com/smile-fanyin/p/17566264.html

相关文章

  • 自学前端-HTML5+CSS-综合案例一-热词
    综合案例一-热词目录综合案例一-热词1、设计需求2、设计所需标签和CSS样式3、设计具体步骤4、遇到的问题设计图如下1、设计需求①需要鼠标放上去有显示透明②需要点击后跳转到相应页面且保留原页面2、设计所需标签和CSS样式所需标签:divCSS样式:伪类hover,颜色color,字大小fo......
  • 前端三剑客之CSS
    一、CSS介绍1、CSS(层叠样式表,CascadingStyleSheets)是一种用于描述网页内容(HTML或XML等)外观样式的标记语言。它是一种样式表语言,用于控制网页的布局、字体、颜色、大小、间距以及其他与显示有关的属性。2、css学习步骤先学习选择器,作用就是如何找到标签找到标签之后,给标签......
  • Web前端学习笔记
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metaname="viewport"content="width=device-width,initial-scale=1.0">  <title>welcometomyworld</ti......
  • docker nginx部署前端项目
    使用Docker部署前端项目介绍Docker是一个开源的容器化平台,可以帮助开发人员轻松地构建、打包和部署应用程序。它提供了一种简单的方式来创建和管理容器,使开发人员能够快速部署应用程序,并确保在不同的环境中具有相同的运行方式。在本文中,我们将探讨如何使用Docker来部署前端项目......
  • Java高并发之CyclicBarrier简介(转)
    原文:https://juejin.cn/post/7209617649885184058作者:xindoo来源:稀土掘金  Java中的CyclicBarrier是一种同步工具,它可以让多个线程在一个屏障处等待,直到所有线程都到达该屏障处后,才能继续执行。CyclicBarrier可以用于协调多个线程的执行,以便它们可以在某个点上同步执行......
  • Java高并发编程的关键概念和技术,深入理解并成功应对高并发问题
    Java高并发编程的关键概念和技术,深入理解并成功应对高并发问题1.是什么是高并发?高并发指的是系统在同一时间点需要处理大量并发请求的能力。这些请求可能来自多个用户或者多个线程。在高并发环境下,传统的串行处理方式往往无法满足性能需求,因此需要采用并发编程来提高系统的吞吐......
  • Go语言的并发
    使用协程这种并发模式是趋势,协程的基本要求是:并发执行和可大量创建。一些语言已经支持协程,下面这个图来自:http://qing.weibo.com/tj/88ca09aa33002ele.html这种并发模式的内核只需要协程和通道就够了。其中协程负责执行代码,通道负责在协程之间传递事件。     协程是轻量级......
  • 前端(CSS)
    csscss:层叠样式表就是给html增加样式的,让其变得更加好看。先学习选择器:作用就是如何找标签找到标签之后:给标签增加样式选择器的语法结构选择器{属性名1:属性值1属性名2:属性值2属性名3:属性值3属性名4:属性值4} CSS的注释语法:/*内容......
  • 前端的一个问题——前端页面打不开
    打开一个webapp下的页面会报这个错误原因:因为第三个函数拦截了所有的路径,所以web页面显示不出来解决方法:在创建一个放行的配置文件,把webapp中的四个目录放行,就可以了......
  • SSM整合--表现层与前端数据传输数据协议实现
      把所有数据都包装成Result  ......