页面加载多久算超时_打开一个网站,花几秒钟算正常?

news/2024/5/20 14:21:42/文章来源:https://blog.csdn.net/weixin_39614546/article/details/111584887

全文共4167字,预计学习时长11分钟

e4f1e2f826ef67d5dc2de8bee656d1be.png

图源:turnkeyInternet

查询谷歌会发现很多文章指出2到5秒钟网页就能加载完毕。但是,是什么使2-5秒成为预设范围呢?直觉告诉你,答案必定比这更复杂。没错,真正的答案比任何试图解答的时间范围细微得多,问题出在提问本身。

并非所有网站和访问者都一样

这个问题有一个缺陷,即认为在不同情况下可采用同一标准。网站不同,用户访问网站的网络情况也不尽相同。

静态博客与图形编辑器不同,4G比2G快得多。静态博客可能根本用不到JavaScript,图形编辑器却会大量使用。4G网络访问者可能只会遇到50毫秒的延迟,而2G用户每次往返可能会经历整整一秒钟的时间。

cf2d152397ec700b82904477cd08d400.png

上表描述了理想条件下达到的数据速率。地下车库不是理想环境,但每个人都有可能会遇到这样的情况,这意味着用户访问网站所使用的网络条件千变万化。

网络条件的可变性

调整网络状况会导致页面加载时间截然不同。假设有两个用户要通过移动网络访问笔者的个人网站(davidea.st)。它只是一个静态网站,不会阻断JavaScript。index.html文件大小只有2.3kb,CSS的大小是1.8kb。

第一个用户以400kib的带宽(2G速度)但100ms的延迟(4G速度)访问。第二位访问者以400kib的带宽,但有1000ms的延迟(均为2G速度)访问。

e93da7fb10ab4cab051a54d24f2d7e76.png

使用同一网站,调整延迟(当人在停车场时延迟就会很容易调整)使index.html的加载速度慢了十倍。因此,如果仅考虑网络延迟就可以彻底改变同一站点的页面加载速度,只是提问“网站应该以多快速度加载”有意义吗?

开发人员无法控制用户进入的网络。这意味着判定网络性能并不仅仅是了解网站加载时间的固定数字。而是要知道页面加载发生在不同条件下的不同时间段,知道这一点的唯一方法是测量。

RUM:测量现实世界性能

这正是RUM监控所能提供的。RUM或“真实用户指标”,从页面加载中收集重要的性能指标并将其信标到可以查看仪表盘数据的服务器。RUM供应商的形状和大小各不相同,就本文而言,笔者将使用FirebasePerformance Monitoring。

Web性能是一种分布

想象一下,如果记录了访问网站的用户的首次渲染时间。然后,将时间记录在条形图中,如下所示:

f1cfcaf87643b71e9ec37fc5dea957d9.png

但是,如此呈现的视觉效果并不准确,并非所有用户都将在完全相同的时间段内加载网站。一个人的网站加载时间为1.5秒,下一个人的网站加载时间为1.65秒。因此,可以使用面积图代替条形图。

6f858b0892f687b559b97bee8423ec49.png

该面积图显示了加载时间的分布,可以帮助了解加载时间的范围以及最常见的情况,它代表所有加载时间的百分位。

21fd1c3c9fce268425951f599c67c861.png

Firebase Performance Monitoring为不同指标提供了一个完整的面积图仪表板。

3910694b55ab476a1116e044cca174d1.png

x轴代表更大的加载时间数组,y轴表示百分位数,这些百分位数最有趣的是它们的形状。

尾部

图表开始急剧向上弯曲,然后缓慢向下弯曲,形成尾巴形状。这说明大多数用户的加载时间在1.5到3.5秒之间。这很好,但是不要被这种变化所骗,尾部包含所有问题。

d1ce48db6c7171e963ef06740d554f71.png

尾部表示遇到最长加载时间的用户。尾部越长,波动性越大。这意味着网站性能变得难以理解。有些用户加载很快,有些载入缓慢。因此,我们需要努力缩短尾部,也需要了解尾部代表什么。

网站何时可用?

10657efa19e84f24078fabc63ec45c27.png

当大多数人说“页面加载”时,指的是该站点实际可用的时间。这有点误导人,因为网站不必完全加载。

想想一个报导重大事件的实时流媒体博客。访问它时发现,屏幕上神奇地出现了超时更新。该页面什么时候“加载”?当第一次更新出现时吗?当header加载时是吗?并非人人都想细究这一话题,可以将页面加载细分为更具体的指标。

“页面加载”的指标

3b1a39787db85b280b73b524fcb913b4.png

用户启动网站加载时会使用到导航,这可能是通过键入URL并单击Enter或单击链接生效。没有渲染像素,浏览器通过网络获取资源。

271816c00eea57e8e6c3312d433343b2.png

初次渲染(FirstPaint, FP)是引用的最常见指标之一。它只会问:屏幕上何时出现普通的像素?了解像素何时开始出现很重要,因为可以了解用户开始看到画面的速度。在某些情况下,此反馈可以帮助用户知道该网站正在加载,因而继续等待。

如果要构建传统的服务器端渲染网站(与服务器端呈现JavaScript应用程序不同),则First Paint可以准确地表示“页面加载”。这是因为所有HTML和CSS都可以使用,无任何渲染阻止JavaScript。但这对于依赖JavaScript的网站可能有所不同。

在很多单页应用(SPA)网站的情况下,First Paint用于静态元素,例如页眉和页脚。该应用程序的其余部分仍在启动,等待JavaScript加载和执行。用户可能会看到一些东西,但该应用程序尚未可用。

a1cc2553e96172de3166592b27faef10.png

首次有内容的渲染(FirstContentful Paint,FCP)关注的是设计内容何时出现在页面上。这不仅仅是渲染到屏幕上的像素。如果网站加载速度很快,FCP和FP往往会同时启动。但如果阻止了Web字体的文本呈现,或者当内容需要JavaScript来加载和执行时,FCP可能会落后于FP。

即使网站加载速度缓慢,FCP和FP的速度也可以相同。这是大型JavaScript应用程序的常见现象,这些应用程序无法渲染或渲染太多静态HTML。在这种情况下,当JavaScript最终加载,执行并呈现FP和FCP时,往往会同时触发它们。

3dcbf7ce14cc066c0b8154f4c32a1c95.png

domInteractve表示浏览器已经从静态HTML构建了DOM树。然后,浏览器开始加载其他资源,例如样式表,图像和JavaScript,这对于了解何时构造DOM树以及何时浏览器将开始加载其他所有内容很有用。

何时知道重要的资源(如JavaScript和样式表)已加载?这就是domContentLoadedEventEnd 的目的。当domContentLoadedEventEnd触发时,不再有任何样式表阻止任何JavaScript执行。这些度量标准非常有用,domInteractive 会说明何时开始加载样式表,而domContentLoadedEventEnd 会说明何时结束加载。

11916524b2132d216b3dac0be0fcd7ec.png

“加载事件结束”(Load Event End)不一定总是最有用的指标,但有时它可以提供很多信息。文档加载完成后,将触发loadEventEnd事件。这意味着当DOM树中的所有资源都已加载时将触发该事件。所有链接的样式表、脚本和图像、图片等资源可能会降低此指标的速度,如果不小心将100MB GIF上传到网站,则会看到相当慢的loadEventEnd。

此指标可帮助大致了解文档资源的加载时间。在触发此指标之前,网站可以使用很长时间。

1ba92e10c998b58debdc7efcaa4438e7.png

首次输入延迟(FirstInput Delay,FID)用于测量首次用户交互触发所花费的时间。用户可能停留在看起来可以使用但已冻结的页面上,无论进行多少次滑动或点击,该网站都无法正常工作,这时需要“首次输入延迟”来测量此类问题。

如果有静态博客,它就也许没那么有用,因为FID可以测量用户何时可以与网站进行交互,这通常是在事件监听器触发后触发的。现在,对于重型JavaScript应用程序,该指标也很关键。JavaScript繁重的应用程序必须先加载、解析和执行,然后才能运行,这可能会推迟网站的最初交互时刻。

WebVitals

如果你是一个精通性能的开发人员(或者如果关注过大牛Addy Osmani),那么你可能听说过Web Vitals计划。Web Vitals是Google的一项举措,旨在为质量信号提供统一指导,这对于在网络上提供出色的用户体验至关重要。

其目的是提高加载性能、交互性和稳定性。构成Web Vitals的核心指标是:

· 最大内容渲染(LCP)(测量加载性能)

· 首次输入延迟(测量交互性)

· 累积版式移位(CLS)(测量稳定性)

笔者不会详细介绍每个指标(因为已经介绍了很多指标),但是可以在web.dev/vitals上查看说明。每个指标都是通过Google网络小组提供的库检索的。

import { getCLS, getFID,getLCP } from 'web-vitals';getCLS(console.log);getFID(console.log);getLCP(console.log);

Firebase性能监控仅支持将“首次输入延迟”作为一流指标。在自动收集其他项目之前,可以使用“自定义跟踪”记录最大的内容丰富的渲染和累积版式移位。

指标过载

借助Performance Monitoring,可以使用属性来细分性能数据,并专注于应用程序在某些情况下的性能:firebase.google.com。

Web性能处处是指标,但并非所有指标都对网站和个人情况有用。笔者建议你去了解一下,看看它如何为你的网站类型服务。不用担心追踪所有指标,只要了解哪种方法最适合网站。

网站应该以多快速度加载?

如何处理这些指标?你可以使用它们来了解网站上发生的情况并提出更好的问题。有个问题必然要问:“使用3G访问用户何时首次看到内容?”追踪这些指标可以查看受影响的用户类型以及随着时间推移的趋势。

借助FirebasePerformance Monitoring,可以深入了解诸如First Contentful Paint的指标,查看哪些维度会影响指标。在这种情况下,可以按有效连接类型(网络速度)将其拆分。

64de158f6ab1d2b3d884901c72825e07.png

仪表板显示大多数用户至少使用4G或更快的连接网络。但是,有5.88%的用户使用3G速度并在2.24秒内加载网页。这样比问“网站应该以多快速度加载?”要好得多。

永远记住,网页加载的速度并非确定数值,Web性能本身就是一种分布。需几行代码,测量可以帮你提出更好的问题并获得更好的答案。

dbb2ceebc5e5d5d9016526d17f83e09f.png

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

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

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

相关文章

网站正在建设中_网站建设中更有利SEO优化的细节

点击蓝字获取更多优惠信息我们现在日常在网络上所花费的时间超出三分之一,甚至更高。在信息化成型的时代,如果在信息市场中不掉队呢?企业推广外宣的途径和方式有了许多选择,企业网站建设、小程序应用、各网络平台推送,…

C# WPF Image如何利用IsMouseOver变成不同的图片

参考代码&#xff1a; <Image Cursor"Hand" x:Name"testImage" Height"200" Width"200" Stretch"Uniform" MouseEnter"Image_MouseEnter" MouseLeave"Image_MouseLeave"><Image.Style>&l…

wos 文献被引_有哪些免费查找、下载文献的网站?(内含SCI-hub最新地址)

各位小伙伴&#xff0c;好久没有送福利给大家了&#xff0c;今天又要送给大家一份免费课程了&#xff01;&#xff0c;有没有开始激动了&#xff1f;科研文献浩如烟海&#xff0c;如何才能找到对自己有重要参考意义的文献&#xff0c;是每个科研工作者都必须要面对的课题&#…

飞鱼星路由器如何限制外网访问服务器网站,飞鱼星路由器如何限制禁止指定IP上网...

你知道飞鱼星路由器如何限制禁止指定IP上网吗?下面是学习啦小编整理的一些关于飞鱼星路由器如何限制禁止指定IP上网的相关资料&#xff0c;供你参考。飞鱼星路由器限制禁止指定IP上网的方法&#xff1a;如何设置让有的电脑能上网而有的电脑不能上网&#xff0c;这个是一个常见…

vue cli中使用预渲染技术解决SEO对SPA不友好问题

单页面应用(SPA)对于SEO不友好的问题可以通过预渲染(Prerender)和服务端渲染(SSR)技术解决 本文主要记录预渲染技术在vue cli构建的项目中的使用 用到插件prerender-spa-plugin、vue-meta-info 内容1. 引入依赖 prerender-spa-plugin2. vue.config.js配置3. 在main.js 添加监听…

allegro如何导入中文丝印_SEO优化中导入链接的相关知识

什么是导入链接&#xff1f;导入链接&#xff08;Inbound Link)即指向你的网站的其他网站的URL。搜索引擎认为&#xff0c;如果你的网站有价值&#xff0c;其他网站会提到你的网站&#xff1b;被提到的次数越多&#xff0c;就说明网站的价值越高。将导入链接纳入排名重要指标的…

vue+springboot 制作属于自己的个人网站 ① vue前端部署

一、准备工作 1.1 下载node vue ① 下载 node node.js下载地址&#xff1a;建议下载稳定版Node.jshttps://nodejs.org/zh-cn/ ② 下载vue 在控制台输入如下指令 npm install -g vue/cli 1.2 租用xx云服务器&#xff0c;这里以阿里云服务器为例 建议百度 阿里云/华为云/百…

vue+springboot 制作属于自己的个人网站 ② spring boot后端部署

一、阿里云服务器安装MySQL ① 阿里云服务器操作系统查看&#xff1a; ② 推荐安装流程 阿里云服务器 linux系统安装mysql8.0.20&#xff0c;超详细步骤_长腿欧巴~的博客-CSDN博客 其中需要注意的是 &#xff08;1&#xff09;强力卸载之前安装mysql的命令&#xff1a; yum …

树展示 移动端_百度移动端开始用网站品牌名代替网址显示

最近&#xff0c;有站长发现&#xff0c;百度移动端最近做了部分改版&#xff1a;移动端部分网站域名开始逐渐被网站相关名称代替&#xff0c;PC端还是用域名展示&#xff0c;卢松松博客网站域名也被替换成网站品牌名显示!百度移动端用网站相关名称代替网址显示这波改版细节。简…

nginx部署网站

nginx部署网站源码编译的nginxyum安装的nginx源码编译的nginx cd /usr/local/nginx/html # 源码编译默认位置把里面所有文件删掉或是只删掉index.html 不想删掉也可以更改文件名 # 任选其一 rm -rf * rm -rf index.html mv index.html 111 # 111 为你要改成的名字接下来就可…

spark网站日志分析实例

文章目录网站日志分析实例日志过滤日志分析网站日志分析实例 日志是非结构化数据&#xff0c;做分析需要先将日志文件做数据清洗。将数据清洗为结构化数据&#xff0c;入库分析。 另外&#xff0c;还有考虑数据的管理&#xff0c;譬如日志数据增量更新等等。针对数据量大&…

网址添加html 301,通过修改.htaccess批量实现网站内页301重定向跳转 | 甄选网

网站死链有时候是不可避免的&#xff0c;网站栏目页或者文章内页因为某些原因调整了路径&#xff0c;如果想保留之前的链接就需要做301跳转。网站首页的301重定向容易做&#xff0c;不过内页的301就相对复杂一些&#xff0c;通过修改.htaccess文件可以轻松完成这项工作。htacce…

手机通过IP访问电脑(端口、网站),手机以及电脑IP查看,防火墙开放指定端口设置。

1.通过IP互访&#xff1a; 手机电脑须在同一局域网&#xff08;网段&#xff09;下。 提示&#xff1a;如果连接没有问题&#xff0c;仍无法访问。需要开放电脑防火墙。可以全开也可以开放特定端口。 方法请看最下面 &#xff12;.操作&#xff1a; 1.电脑开移动热点手机连热…

vs2010发布网站

发布网站步骤&#xff1a; 1、新建网站&#xff1a;打开IIS&#xff0c;右击网站——>添加网站填写网站名称&#xff08;随便写&#xff09;和应用程序池名称物理路径选择你要存放发布网站的位置&#xff08;最好自己新建一个空的文件夹&#xff09;点击身份验证下的链接为—…

页面布局_常见的几种网站页面结构与关键词布局技巧!

网站页面布局是网站站内优化的一个重要组成部分&#xff1b;而网站站内优化却又是一个网站最终是否能够冲入百度首页甚至前三的最关键要点。因此&#xff0c;如何做网站页面布局更有利于排名&#xff1f;关于这一点小编分几点去讲述&#xff1a;一、网站站内结构布局1、代码的布…

dw添加下拉菜单_用dreamweaver制作网站下拉菜单的实现教程

在设计网页时&#xff0c;需要添加下拉菜单并向下拉菜单添加列表值&#xff0c;让我们一起进入下文看一下爱站技术频道小编用dreamweaver制作网站下拉菜单的实现教程&#xff0c;感兴趣的小伙伴们可以参考一下。打开软件&#xff0c;我们按快捷键ctrln&#xff0c;建立一个新的…

Asp.net网站部署时遇到的一些问题

很少部署网站&#xff0c;这几天有一个网站帮朋友部署&#xff0c;期间遇到一些问题&#xff0c;经查找各种网络资源&#xff0c;最终解决&#xff0c;先将遇到的问题及解决办法分享一下。 系统 Win7iis7.5sqlserver2008.Net 4.0 启动IIS&#xff0c;运行->Inetmgr&#x…

服务器如何从bios修改mac,BIOS维修网站www.biosrepair.com-用编程器修改网卡MAC地址

朋友一个软件绑定了网卡的MAC地址&#xff0c;由于原网卡损坏&#xff0c;造成软件无法正常运行&#xff1b;重新找了一款DFE-530TX的网卡&#xff0c;当然由于MAC与原网卡不一样&#xff0c;软件还是无法运行的&#xff1b;因此需要将DFE-530TX网卡的MAC修改成原网卡的才可&am…

微信开发php案例分析,微信开发微网站之jquery_mobile案例分析

这节课我们主要用到到jquery_mobile来实现一个点电影播放网站jquery_mobile(简称JQM)其实就是基于jquery开发出来的一套移动端框架&#xff0c;适应移动用户端市场对浏览与体验从而进一步的提升jquery_mobile控件介绍jquery_mobile的语法将各个控件(widget)以data-role的形式定…

怎么查一个作者的所有文章_作为一个老手seo优化人员,应该怎么去给网站发文章更新...

相信做网站优化seo的很多朋友都知道&#xff0c;做一个网站容易&#xff0c;但是怎么维持网站文章内容的更新呢&#xff1f;有的网站布局比较大&#xff0c;所以每天就需要大量的文章来维护网站更好的做优化。另外一方面就是做一个网站的文章是需要文章基础的(当然技术大佬除外…