一般网站优化都是优化后台,如接口的响应时间、SQL优化、后台代码性能优化、服务器优化等。高并发情况下,对前端web优化也是非常重要的。

下面说说几种常见的优化措施。

1、HTML CSS JS位置

一般需要将CSS放页面最上面,即HEAD部分,而将JS代码放页面底部。因为页面需要加载为CSS才进行渲染,而JS如果不是在页面加载之前就要执行就要放到页面最底部,以免在页面展示之前因JS过多加载而影响页面渲染速度。

2、引用文件位置

有一些插件需要引用到远程的图片、CSS、JS、图标等,如果远程的资源连接网速不佳,如国外的某些资源,会造成网页阻塞,同样也会造成页面展示问题,尽量能把引用远程的资源能本地化。

3、减少后台请求

每个请求都是耗费资源影响系统性能的,所以,能减少后台请求就减少。如,尽量的将同一个资源(图片、JS、CSS等)合并成一个文件,页面只要请求一次即可,这样就节省了很多http连接的开销及往返的时间损耗。

另外一方面,如果是关于抽奖、摇一摇、秒杀等功能,可以限制发往后台的频率,如前端操作10次才往后端发一次请求,这样从前端就做到了后台的流量控制,把流量控制到访问的最外层是最好的,尽量不要让请求落到底层。

4、压缩传输

http压缩可以对纯文本可以压缩至原内容的40%, 从而节省了60%的数据传输,GZIP是一种常用的压缩编码。因此,对文本类型的资源如CSS、JS、HTML启用GZIP压缩加速http传输速度。

5、减少cookie传输

cookie会包含在每次请求和响应中,如果cookie过多会影响http响应速度,所以高并发情况下尽量控制cookie的传输量,nginx对cookie传输默认是做了限制的。另外,像CSS、JS、图片等静态资源可以启用单独域名,禁用cookie对静态资源的传输,这样就能大大提高效率。

6、浏览器缓存

高并发情况下,可以将一些不怎么变动的东西缓存到浏览器cache中,或者一些活动内容可以提前将内容在客户端缓存起来,以免活动开始大量请求涌入服务器。

7、CDN

之前的文章有讲过CDN的概念,它就是一个静态内容分发网络,本质就是静态资源的缓存,可以将静态资源放到CDN上,这样,用户就能离自己最近的地方获取到资源,大大提高了用户访问速度。

8、反向代理

常用的反向代理nginx除了负载均衡功能,它也可以通过配置缓存功能来加速请求响应速度,当用户第一次访问的时候静态资源就可以被缓存到反向代理服务器上,这样其他用户的请求就能直接从反向代理服务器直接获取返回,这样也就直到了静态资源缓存的作用。

我大概列了这些,其实还有很多优化手段,大家有更好的建议的话,可以在下方留言。

推荐阅读

干货:2TB架构师四阶段视频教程

面经:史上最全Java多线程面试题及答案

面经:史上最全阿里高级Java面试题

面经:史上最全Spring面试题

教程:最全Spring Boot全套视频教程

书籍:进阶Java架构师必看的15本书

工具:推荐一款在线创作流程图、思维导图软件

分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。

最新文章

  1. Dark Mobile Bank之移动银行应用仿冒攻击威胁分析报告
  2. javascript的this
  3. eclipse项目自动发布到tomcat目录,缺文件。
  4. 简单创建与布署CLR存储过程
  5. swift——启动页国际化:一步一步动态加载启动页图片,启动的时候加载文字
  6. 菜鸟疑问之新建网站与新建web应用程序区别
  7. spring mvc配置完后实现下载功能
  8. 互斥锁Mutex与信号量Semaphore的区别
  9. caffe之(五)loss层
  10. 《C语言程序设计现代方法》第1章 C语言概述
  11. http://begin.lydsy.com/JudgeOnline/problem.php?id=2770(PKU2503 Babelfish)
  12. phpstrom 的一些常用设置
  13. WebServiceWSDLWeb
  14. 深入理解Struts2----数据校验
  15. [贪心][高精]P1080 国王游戏(整合)
  16. 玩转BLE(1)_Eddystone beacon
  17. 关于loadrunner的了解
  18. 常见camera测试卡
  19. hdu5125 树状数组+dp
  20. python核心编程笔记——Chapter7

热门文章

  1. C#设计模式:抽象工厂(Abstract Factory)
  2. SQL server 聚集索引与主键的区别
  3. Gradle中的GroupID和ArtifactID指的是什么?
  4. 2018-8-10-win10-uwp-毛玻璃
  5. 实现多线程的三种方法:Thread、Runnable和Callable
  6. 线程中的sleep()、join()、yield()方法有什么区别?
  7. Random 生成随机数
  8. Python中的"Special Method"
  9. linux学习-常用文本处理命令
  10. python环境变量