成都高
新区网站制作公司您是否正在CDN / Edge上使用服务人员,例如进行A / B测试?
在这一点上,我们已经很习惯在客户端上运行服务工作者,但是通过CDN在服务器上实现它们,我们也可以使用它们来调整边缘性能。
例如,在A / B测试中,当HTML需要为不同的用户改变其内容时,我们可以使用CDN服务器上的Service Workers处理逻辑。我们还可以流式传输HTML重写以加速使用Google字体的网站。
服务人员安装的时间序列。据
网站制作 Almanac称,所有桌面页面中只有0.44%注册了服务工作者。(大型预览)
优化渲染性能。
通过CSS隔离来隔离昂贵的组件,例如,以限制浏览器样式,画布外导航的布局和绘画或第三方小部件的范围。确保在滚动页面或为元素设置动画时没有滞后,并且始终保持每秒60帧的速度。如果这不可能,那么至少使每秒帧数保持一致,更好是60到15的混合范围。使用CSS'will-change通知浏览器哪些元素和属性将发生变化。
另外,还要评估运行时渲染性能(例如,在DevTools中)。首先,请查看Paul Lewis的有关浏览器渲染优化的免费Udacity课程,以及Georgy Marchuk关于浏览器绘画和
网站制作性能注意事项的文章。
如果您想更深入地研究该主题,Nolan Lawson在他的文章中分享了一些技巧,可以准确地测量布局性能,Jason Miller也建议了其他技巧。我们也有Sergey Chikuyonok的一篇有关如何正确获得GPU动画的文章。
注意:对GPU合成层的更改更便宜,因此,如果您仅通过opacity和触发合成就可以摆脱困境transform,那么您将走上正确的道路。Anna Migas在有关“调试UI渲染性能”的演讲中也提供了许多实用建议。
您是否优化了渲染体验?
尽管组件如何在页面上出现的顺序以及我们如何向浏览器提供资产的策略很重要,但我们也不应低估感知性能的作用。该概念涉及等待的心理方面,基本上在其他事情发生时使客户保持忙碌或忙碌。这就是感知管理,抢先开始,提早完成和容忍管理的地方。
这是什么意思呢?在加载资产时,我们可以尝试始终于客户一步,因此在后台发生大量事情时,体验会很快。为了保持客户的参与度,我们可以测试框架屏幕(实现演示)而不是加载指示器,添加过渡/动画,并在没有其他要优化的地方基本欺骗UX。但是要当心:在部署之前应先测试骨架屏幕,因为一些测试表明骨架屏幕在所有指标上的表现都更差。
您是否防止布局偏移和重新粉刷?
在感知性能领域可能的更具破坏性的经验之一是布局转移,或回流,造成重新调整图像和视频,网页字体,注入广告或者后期发现的脚本与实际内容填入组件。结果,客户可能开始阅读文章,而只是被阅读区域上方的布局跳转打断。经验常常是突然的并且令人迷惑:这可能是加载需要重新考虑的优先事项的情况。
社区已经开发了一些技术和解决方法来避免回流。始终设置宽度 图像上的高度和高度属性,因此现代浏览器默认情况下会分配该框并保留空间(Firefox,Chrome)。
对于图像或视频,我们都可以使用SVG占位符来保留将在其中显示媒体的显示框。这意味着当您还需要保持其纵横比时,可以正确保留该区域。
除了不使用外部脚本进行延迟加载图像外,仅当不支持本机延迟加载时,才在加载外部脚本时考虑使用本机延迟加载或混合延迟加载。
如上所述,始终将网站制作字体重新粉刷分组并立即从所有后备字体过渡到所有网站制作字体-只需通过使用font-style-matcher调整行高和字体之间的间距来确保切换不会太突然。(请注意,尽管如此,调整也会因复杂的字体堆栈而变得复杂。)
为确保包含回流的影响,请使用Layout Instability API来测量布局稳定性。有了它,您就可以计算出“累积布局偏移”(CLS)分数并将其作为测试中的一项要求,因此,只要出现回归,就可以跟踪并修复它。
要计算布局平移分数,浏览器将查看视口大小以及两个渲染帧之间视口中不稳定元素的移动。理想情况下,分数应接近0。Milica Mihajlija和Philip Walton对于CLS是什么以及如何进行测量有很好的指导。这是衡量和保持可感知的性能并避免中断的良好起点,尤其是对于关键业务任务而言。
奖励:如果您想减少重排和重绘,请查看Charis Theodoulou的“更小化DOM重排/布局打乱”指南和Paul Irish的“什么导致布局/重排”列表以及CSSTriggers.com(有关触发布局,绘制的CSS属性的参考表)和合成。
联网和HTTP / 2
是否启用OCSP装订?
通过在服务器上启用OCSP装订,可以加快TLS握手的速度。创建了联机证书状态协议(OCSP),以替代证书吊销列表(CRL)协议。两种协议都用于检查
SSL证书是否已被吊销。但是,OCSP协议不需要浏览器花时间下载,然后在列表中搜索证书信息,因此减少了握手所需的时间。
您是否已采用IPv6?
由于我们的IPv4空间不足,并且主要的移动网络都在迅速采用IPv6(美国已达到50%的IPv6采用阈值),因此更好将您的DNS更新为IPv6,以确保未来的安全。只需确保在网络上提供双栈支持即可,它使IPv6和IPv4可以同时并行运行。毕竟,IPv6不向后兼容。此外,研究表明,由于邻居发现(NDP)和路由优化,IPv6使这些网站的速度提高了10%至15%。
确保所有资产都通过HTTP / 2运行。
在过去的几年中,随着Google向着更加安全的HTTPS网站发展,切换到HTTP / 2环境无疑是一项不错的投资。实际上,根据
网站制作 Almanac,所有请求中的54%已经通过HTTP / 2运行。
重要的是要了解HTTP / 2并不好,并且存在优先级问题,但是它得到了很好的支持,它不会随处可见。而且,在大多数情况下,您更好这么做。
如果您仍在运行HTTP,则更耗时的任务将是首先迁移到HTTPS,然后调整构建过程以适应HTTP / 2复用和并行化。对于本文的其余部分,我将假定您正在切换到或已经切换到HTTP / 2。
根据网站制作 Almanac的数据,到2019年底,所有请求中有54%通过HTTP / 2进行了服务-正式标准化仅四年后。(图片来源:网站制作年鉴)(大预览)
正确部署HTTP / 2。
同样,通过HTTP / 2提供资产到目前为止,您可以对资产的服务方式进行部分改革,从而从中受益。您需要在包装模块和并行加载许多小模块之间找到一个很好的平衡。归根结底,更好的请求还是没有请求,但是,目标是在资产的快速首次交付和缓存之间找到一个平衡。
一方面,您可能希望避免将资产完全串联在一起,而不是将整个接口分解为许多小模块,将其压缩为构建过程的一部分并并行加载。一个文件的更改不需要重新下载整个样式表或JavaScript。它还可以更大程度地减少解析时间,并使单个页面的有效负载保持较低。
另一方面,包装仍然很重要。通过使用许多小的脚本,整体压缩将受到影响。大包的压缩将受益于字典的重用,而单独的小包则不会。有解决此问题的标准方法,但目前还很遥远。其次,浏览器尚未针对此类工作流程进行优化。例如,Chrome将触发与资源数量成线性关系的进程间通信(IPC),因此包括数百个资源将导致浏览器运行时成本增加。
渐进式CSS加载
为了获得HTTP / 2的更佳效果,请考虑逐步加载CSS,这是Chrome的Jake Archibald建议的。
不过,您可以尝试逐步加载CSS。实际上,内置CSS不再阻止Chrome的渲染。但是存在一些优先级问题,因此它不是那么简单,但是值得尝试。
您可以摆脱HTTP / 2连接合并的束缚,它使您可以在受益于HTTP / 2的同时使用域分片,但是在实践中很难做到这一点,通常,这不是一个好习惯。同样,HTTP / 2和Subresource Integrity并非总是如此。
该怎么办?好吧,如果您使用的是HTTP / 2,则发送大约6–10个软件包似乎是一个不错的妥协(对于旧版浏览器来说还算不错)。进行实验和衡量,以找到适合您网站的平衡。
您的服务器和CDN是否支持HTTP / 2?
不同的服务器和CDN对HTTP / 2的支持不同。使用TLS快速吗?检查您的选项,或快速查找服务器的性能以及可以支持的功能。
咨询Pat Meenan对HTTP / 2优先级的惊人研究(视频),并测试服务器对HTTP / 2优先级的支持。根据Pat的建议,建议启用BBR拥塞控制并将tcp_notsent_lowatHTTP / 2优先级设置为16KB,以便在Linux 4.9内核及更高版本的内核上可靠地工作(感谢Yoav!)。Andy Davies对跨浏览器,CDN和Cloud Hosting Services的HTTP / 2优先级进行了类似的研究。
在此期间,请仔细检查您的内核是否支持TCP BBR,并在可能的情况下启用它。当前在Google Cloud Platform,Amazon Cloudfront,Linux(例如Ubuntu)上使用。
您的服务器和CDN是否支持HTTP over QUIC(HTTP / 3)?
如果您喜欢冒险或前沿,则可能要检查服务器或CDN是否支持HTTP over QUIC(也称为HTTP / 3)。虽然HTTP / 2进行了重大改进,但在网络速度慢或不可靠(大量数据包丢失)的情况下,它的性能并不是特别好。
为了解决这个问题,Google一直在研究Google QUIC,这是Chrome今天用于许多Google服务的协议。然后,Google在2015年将许多学习成果带到了IETF,该学习现在正在标准化。
QUIC和HTTP / 3更好,更防弹:具有更快的握手,更好的加密,更可靠的独立流,更多加密,并且如果客户端以前与服务器建立连接,则使用0-RTT。但是,这是相当占用CPU的资源(在相同带宽下,CPU使用率是2-3倍),未优化UDP堆栈,并且硬件和TLS层存在一些未解决的问题。
HTTP / 3有望在2020年初作为标准发布。Chrome和Safari确认它们已经具有内部实现,并且在Chrome Canary和Firefox Nightly中可以使用HTTP / 3。一些CDN已经支持QUIC和HTTP / 3。Apache,nginx或IIS均不支持它,但它可能会在2020年发生变化。
TLS快了吗?
TLS快速吗?允许您在切换到HTTP / 2时检查服务器和CDN的选项。(大型预览)
是否正在使用HPACK压缩?
如果您使用的是HTTP / 2,请仔细检查服务器是否对HTTP响应标头实施了HPACK压缩,以减少不必要的开销。由于HTTP / 2服务器相对较新,因此它们可能不完全支持该规范,以HPACK为例。H2spec是一个很棒的工具(如果技术上非常详细),可以检查该工具。HPACK的压缩算法令人印象深刻,并且有效。
确保服务器上的安全性是防弹的。
HTTP / 2的所有浏览器实现都在TLS上运行,因此您可能要避免安全警告或页面上的某些元素不起作用。仔细检查您的安全标头设置是否正确,消除已知漏洞并检查HTTPS设置。另外,请确保所有外部插件和跟踪脚本都通过HTTPS加载,无法进行跨站点脚本编写,并且正确设置了HTTP Strict Transport Security标头和Content Security Policy标头。
测试与监控
您是否优化了审计工作流程?
听起来似乎没什么大不了的,但是唾手可得的正确设置可以为您节省大量测试时间。考虑使用Tim Kadlec的Alfred Workflow for
网站制作PageTest将测试提交到网站制作PageTest的公共实例。实际上,网站制作PageTest具有许多晦涩的功能,因此花时间学习如何读取网站制作PageTest Waterfall View图表以及如何读取
网站制作PageTest Connection View图表以更快地诊断和解决性能问题。
你也可以驾车从谷歌电子表格网站制作PageTest和一体化交通方便,性能和SEO分数到您的特拉维斯设置的灯塔CI或直接进入的网站制作Pack。
而且,如果您需要快速调试某些东西,但是您的构建过程似乎非常缓慢,请记住,对于大多数JavaScript ,“空格删除和符号处理占缩小代码的大小的95%,而不是精心设计的代码转换。您可以只需禁用压缩即可将Uglify构建速度提高3到4倍。”
文章题目:成都高新区网站制作公司
转载来源:/news16/176616.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有网站制作等
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联