传统网站性能优化的三种手段

news/2024/5/9 23:01:04/文章来源:https://blog.csdn.net/mxw2552261/article/details/119745314

对于技术人而言,性能优化是一个亘古不变的话题。而随着框架、语言、库等工具的不断演进,传统的优化手段是否仍然适用?在创新的环境之下,又有哪些较为捷径的优化手段?在本文中,作者将以一年前的网站为测试对象,尝试了最新的三种手段,有效地将网站性能提高了 24%,接下来,我们将一探究竟。

作者 | SwissGreg

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

上周末,我们提升了一年以前构建的一个网站的性能。

我们的这个网站是为瑞士的软件开发人员提供的求职平台,该网站的性能非常重要,原因有如下两个:

  1. 良好的用户体验:既包括网站的加载时间(以及与用户交互时间),也包括使用该网站时的快捷感。

  2. SEO:在很大程度上,我们的流量依赖于Google搜索,而且众所周知Google更加偏向性能出众的网站(Google甚至在搜索控制台中显示了速度报告)。

如果你在网上搜索“网站性能基础”,就会发现很多小技巧,例如:

  • 使用CDN(内容交付网络)提供能够缓存一段时间的静态文件。

  • 优化图像尺寸和格式。

  • 使用GZIP或Brotli压缩。

  • 减少非关键JS和CSS代码的大小。

我们实现了很多容易达成的目标。

另外,由于我们的主页基本上是一个可过滤的列表(用React编写),所以我们引入了react-window,可以一次只渲染10个列表项(而不是250个)。

上述技巧帮助我们极大地提高了性能,然而在查看了速度报告后,感觉我们还有进步的空间。

因此,我们开始研究更多不寻常的方式来提升网站的速度,最终我们取得了巨大的成功!这是本周的报告: 

这份报告显示,网站的整体加载时间减少了24%!

那么,为了取得这样的成果,我们究竟做了哪些努力呢?

1. 针对JSON数据采用rel ="preload"

index.html文件中加入的这一行代码可以指示浏览器:在JavaScript调用AJAX/fetch请求JSON数据前,就应该获取这些数据。

当实际需要使用数据时,就可以从浏览器缓存中读取,而不必再次获取数据。这个技巧帮助我们节省了大约0.5秒的加载时间。

本来我们可以早点实现这个技巧,但是Chrome浏览器中曾经有一些问题导致重复下载。不过如今看来已经改好了。

2. 在服务器端实现超级简单的缓存

在实现JSON预加载后,我们发现下载职位列表仍然是瓶颈(从服务器获取响应大约需要0.8秒)。因此,我们决定研究服务器端的缓存。首先,我们尝试了节点缓存,但是令人惊讶的是,获取时间并没有缩短。

值得一提的是/api/jobs端点是一个简单的getAll端点,因此没有改进的余地。

但是,我们决定更进一步,通过一个JS变量简单地构建自己的缓存。如下所示:

此处唯一没有列出的是POST /jobs端点,它会删除缓存(cachedJobs =undefined)。

如此简单的一段代码,就削减掉了0.4秒的加载时间!

3. 削减CSS和JS包的大小

最后我们查看了网页需要加载的CSS和JS包的大小。我们注意到"font-awesome"这个包的大小超过了70kb。

然而,我们仅使用了其中大约20%的图标。

我们是如何处理的?我们通过icomoon.io选择了需要使用的图标,并创建了自定义的精简图标包。

因此,节省了50kb!

以上三种不寻常的技巧帮助我们将网站的加载时间缩短了24%。甚至有报告显示,网站的加载时间降低了43%(降低至1-2秒)。

目前我们对这些提升感到非常满意。但是,我们相信我们可以做得更好!

如果你知道其他不寻常的技巧可以提供帮助,那么敬请在下方的评论中留言!

原文:https://dev.to/swissgreg/how-we-improved-website-performance-by-24-with-3-unusual-changes-9ei

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_765759.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python登录脚本_python requests库登录网站脚本 登录失败

想写一个自动登录脚本,拿V2EX做实验。首先分析了下登录提交的表单:需要分析登陆界面中的html取出next,once,next值,分别为input_next_value_pre、input_once_value、input_next_value_post, 然后用requests请求页面,主要代码如下&…

的后台表_用逐浪CMS做的网站后台密码忘记如何重置

问:用逐浪CMS做的网站后台密码忘记了 进不去后台,,现在怎么办啊?答:连接数据库,打开数据库,进入表管理,找到ZL_Manager表,打开。找到您要修改的用户名,如admi…

seo 伪原创_SEO优化时如何写好一篇伪原创文章

首先伪原创文章是为了照顾搜索引擎,目标是奔着原创文章,大多数读者应该都是这两个基本原则了,而产生伪原创这个概念是因为站长们忙或者是对网站内容补充数量要求比较高而又有这希望能借助一些热门的关键词或者重要的指数关键词来提高网站权重…

网站底部运行时间的php代码,wordpress主题网站不用插件显示网站运行时间php源码教程...

介绍:wordpess用插件可以实现网站显示网站运行时间,但是插件始终会拖慢一些网站速度。经过百度终于找到一些好用的显示时间源码,本站使用的是第一种显示方式。下面奉上显示网站运行时间的php源码和添加教程,我使用的是第一种方法。…

网站图片全自动加密_网站常见反爬解决方法

码农三哥愿与大家每日分享java开发过程中笔记和互联网人工智能技术文章,愿你我互交流,共同成长!目前,许多网站采取了各种各样的措施来反爬虫,通常一个网站都会使用下面的多种反爬,越是数据价值高的网站反爬…

如何将网站前端如何添加登录密码访问_python 爬虫如何突破登录验证

我用 python 做爬虫爬过不少数据,比如在 google play 爬应用信息;在 instragram, 500px 爬图片;当然爬虫的作用不止于此,比如定时去某个网站签到,妈妈再也不用担心我忘记签到了这些网站支持游客访问,但要访…

互联网站总量达1.72亿Apache仍居第一(组图)

2008.07.08 来自:驱动之家  据Netcraft统计,互联网上的网站总量在今年6月份已经达到172338726个,一个月内增长了390万个,其中ThePlanet.com新增了63.2万个,使其成为全球第六大主机服务提供商. 据Netcraft统计,互联网上的网站总量在今年6月份已经达到172338726个,一…

linux 静态 nginx,使用Nginx部署静态网站

这篇文章将介绍如何利用Nginx部署静态网站。之前写过2篇有关Nginx的文章,一篇是《利用nginx,腾讯云免费证书制作https》,另外一篇是《linux安装nginx》,如果有需要可以看一下,这一篇文章介绍如何使用Nginx部署静态网站…

网站攻击软件_公安某局DDoS攻击软件检验案例

1. 基本案情2019年9月,公安某局抓获涉嫌非法控制计算机信息系统的犯罪嫌疑人杨某、兰某等人,现场查获笔记本电脑一台。据嫌疑人交待,其利用笔记本电脑中的黑客软件对目标网站进行攻击,导致目标网站瘫痪,无法正常访问&a…

服务器网站绑定域名网站建设,网站搭建发布:添加域名NS记录解析

域名NS记录应该也算比较常用,比如你在新网买了域名,但你想使用DNSPod来解析域名,那么你就需要把DNS服务器换成DNSPod的,同时添加域名NS记录才可以使用。一、什么是域名NS记录NS(NameServer)记录是域名服务器记录,用来指…

wordpress插件之All in One SEO Pack:整体优化你的wordpress博客

一,什么是All in One SEO Pack? All in One SEO Pack,wordpress的一个seo插件,用这一个插件你就可以实现wordpress的整体优化。 不需要title插件,meta插件,tag插件,也不需要DupPrevent Plugin插…

学习豆瓣好榜样--网站架构

这次的 QCon 会议,《豆瓣网技术架构的发展历程》这个议题差不多是最受关注的。洪强宁在演讲开始告诫大家期望值不要太高,我还是相信不会有人觉得失望的。 先说几句题外话,整个演讲听下来,我们会发现豆瓣在发展的过程中也是有点弯路…

几个前端必用的网站

阿里矢量图标库 阿里iconfont 使用 需要先登录 <div class"img"><svg t"1625021228288" class"icon" viewBox"0 0 1024 1024" version"1.1" xmlns"http://www.w3.org/2000/svg" p-id"1478"…

提高PHP网站安全性的5个技巧

2019独角兽企业重金招聘Python工程师标准>>> 技巧1&#xff1a;使用合适的错误报告 一般在开发过程中&#xff0c;很多程序员总是忘了制作程序错误报告&#xff0c;这是极大的错误&#xff0c;因为恰当的错误报告不仅仅是最好的调试工具&#xff0c;也是极佳的安全漏…

SEO系列一:SEO是什么?SEO有什么意义?

最近周珍都没怎么写文章的&#xff0c;总感觉好像是没有什么话题可以写的。后来被某某人小小的教育了一下&#xff0c;这才恍然醒悟过来。所以决定开始写一个关于SEO基 础知识的系列文章。当然&#xff0c;我写这个系列的文章&#xff0c;主要还有二个目的。一是想给后来的SEO新…

19家网站涉嫌传播低俗内容 网络低俗之风不可长

朱慧卿绘 1月5日&#xff0c;互联网违法和不良信息举报中心根据公众举报&#xff0c;公布19家存在大量违反社会公德、损害青少年身心健康、低俗内容的网站&#xff0c;谷歌、百度、新浪、搜狐等国内多家知名网站位列其中。 这是新闻办、工业和信息化部、公安部等七部门在全国开…

iis6 部署 asp.net mvc 网站

此文乃在参考部分网络文章之后&#xff0c;亲自试验后发布&#xff0c;目的有二&#xff0c;一来让用文字记录好查阅&#xff1b;二来为更多的网友参考。 试验环境&#xff1a; server2003 SqlServer2005iis6 需要准备的工具包&#xff1a;.net framework 3.5 sp…

优化网站设计(十一):避免重定向

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过&#xff0c;我在不同的场合也分享过这样的话题。 作为通用的原则&#xff0c;雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices f…

ASP.NET MVC5 网站开发实践(二) Member区域–我的咨询列表及添加咨询

上次把咨询的架构搭好了&#xff0c;现在分两次来完成咨询&#xff1a;1、用户部分&#xff0c;2管理部分。这次实现用户部分&#xff0c;包含两个功能&#xff0c;查看我的咨询和进行咨询。 目录&#xff1a; ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一)…

JAVA推荐网站

为什么80%的码农都做不了架构师&#xff1f;>>> 语言&#xff1a;中文简介&#xff1a;CSDN 个人最喜欢的网站 http://www.csdn.net/ 语言&#xff1a;中文简介&#xff1a;Java Eye http://www.javaeye.com/ 语言&#xff1a;中文简介&#xff1a;Java中文网站 ht…