澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

什么是关键,前端性能优化和测试工具总结

手动优化 SVGs

类似于其他的图形文件,SVG 也应该在上线前被优化。虽然有许多类似 Raymond 的工具可以帮你做这种优化,但最好的方式还是深入理解其细节并做一些手动的优化。

Critical path

提取和整合 HTML 中关键的 CSS。

在生产环境中使用Critical

使用Critical这样的工具是自动提取和内联关键CSS的好方法,而无需改变开发网站的方式,但是如何适应真实场景? 要将新更新的文件置于目标文件,您只需按照通常的方式进行部署 – 无需在生产环境中更改。 您只需记住,每次构建或更改CSS文件时,都需要运行Grunt。

我们在本文中运行的代码示例涵盖了单个文件的使用,但是当您需要处理多个文件关键CSS甚至整个文件夹时会发生什么? 您的Gruntfile可以更新以处理多个文件,类似于下面的示例。

critical: { dist: { options: { base: './', dimensions: [{ width: 1300, height: 900 }, { width: 500, height: 900 }] }, files: [ {src: ['index.html'], dest: 'dist/index.html'}, {src: ['blog.html'], dest: 'dist/blog.html'} {src: ['about.html'], dest: 'dist/about.html'} {src: ['contact.html'], dest: 'dist/contact.html'} ] } } 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
critical: {
  dist: {
    options: {
      base: './',
      dimensions: [{
        width: 1300,
        height: 900
       },
       {
        width: 500,
        height: 900
      }]
    },
    files: [
      {src: ['index.html'], dest: 'dist/index.html'},
      {src: ['blog.html'], dest: 'dist/blog.html'}
      {src: ['about.html'], dest: 'dist/about.html'}
      {src: ['contact.html'], dest: 'dist/contact.html'}
    ]
  }
}


您还可以使用以下代码对给定文件夹中的每个HTML文件执行任务:

critical: { dist: { options: { base: './', dimensions: [{ width: 1300, height: 900 }, { width: 500, height: 900 }], src: '*.html', dest: 'dist/' } } } 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
critical: {
  dist: {
    options: {
      base: './',
      dimensions: [{
        width: 1300,
        height: 900
      },
      {
        width: 500,
        height: 900
      }],
      src: '*.html',
      dest:  'dist/'
    }
  }
}


上面的代码示例可以让您深入了解如何在您的网站上实现。

扩展阅读

  • Usertiming API
  • Jank Free
  • Scrolling performance
  • Mobile web performance auditing
  • Gone in 60 frames per second
  • Udacity course on rendering performance

    1 赞 6 收藏 评论

图片 1

PerfAudit

我们审查页面的加载和渲染性能。对于令人反感的响应缓慢和问题页面,我们有义不容辞的使命提供快速、稳定和准确的页面。

关键CSS实践

使用关键CSS,我们需要改变我们处理CSS的方式 – 这意味着将其分成两个文件。 对于第一个文件,我们仅提取渲染上述内容所需的最小CSS集,然后将其内联在网页中。 对于第二个文件或非关键的CSS,我们异步加载它,以免阻塞网页。

一开始似乎有点奇怪,但是通过将关键的CSS集成到HTML中,我们可以消除关键路径中的额外的请求。 这使我们能够在一次请求中提供关键的CSS,以尽快向用户展示页面。

下面的代码给出了一个基本的例子。

JavaScript

<!doctype html> <head> <style> /* 内联CSS */ </style> ``<script> loadCSS('non-critical.css'); </script>`` </head> <body> ...body goes here </body> </html>

1
2
3
4
5
6
7
8
9
&lt;!doctype html&gt;
&lt;head&gt;
  &lt;style&gt; /* 内联CSS */ &lt;/style&gt;
  ``&lt;script&gt; loadCSS('non-critical.css'); &lt;/script&gt;``
&lt;/head&gt;
&lt;body&gt;
  ...body goes here
&lt;/body&gt;
&lt;/html&gt;

如上,我们将关键CSS内联在style 标签中。然后,使用 loadCSS(); 异步加载非关键的CSS。 这很重要,因为我们在展示首屏后加载繁重的(非关键) CSS。

起初,这似乎是一场噩梦。 为什么要手动在每个页面内嵌CSS片段? 但是有一个好消息,这个过程可以自动化,在这个例子中,我将运行一个名为Critical 的工具。 Addy Osmani 创造,它是一个允许您自动提取和内联关键路径CSS到HTML中的的Node.js包。 我将把这个工具和 Grunt 一起介绍, Grunt是一个JavaScript 任务执行器, 自动处理CSS。 如果你之前没听过Grunt, 这个网站有一些非常 详细文档, 以及配置项目的各种解释。我之前博客介绍过这个工具.

CloudFlare

CloudFlare 的强大之处在于它可以成为你的 DNS 服务器(CDN 只是它所有服务的一个组成部分),这样对你的网站发起的所有请求都会经过它。

CloudFlare 的 CDN 在过去十五年的设计和发展中,并没有一味的守旧和固步自封。我们的专利技术中充分利用了最新的技术进步,包括并不限于硬件、web 服务器和网络路由。换言之,我们创新的建设了下一代的 CDN。新的 CDN 配置简单、价格低廉,其性能也一定比你使用过的任何传统 CDN 都要优秀。

Google PageSpeed

PageSpeed 根据网页最佳实践分析和优化测试的网页。

图片 2google pagespeed

PageSpeed 也有一个 CLI(Command Line Interface)工具:PSI(PageSpeed Insights with reporting)

在构建进程中,可以使用 PSI 测试移动端和桌面端的性能,最终得到可读性良好的测试结果。

图片 3google pagespeed

更多资源

如果您喜欢使用其他构建系统(如Gulp),则可以直接使用插件,而无需下载Grunt。 还有一个有用的教程,如何使用Gulp优化基本页面.

还有其他插件可以提取你的关键CSS,比如 Penthouse,和来自Filament 公司的criticalCSS。我强烈推荐 “我们如何使RWD网站快速加载” 了解如何使用这个技术来确保他们的网页尽可能快地加载。

Smashing Magazine的总编辑Vitaly Friedman写了一篇关于Smashing Magazine如何改进表现的文章 improved the performance 。如果您想了解关于渲染路径的更多信息,那么在Udacity网站上可以免费使用 一个有用的课程。 Google Developers website 也有关于 优化CSS传输的内容。 Patrick Hamman 写了一篇博客关于 如何识别关键的CSS创建更快的网页。

默认情况下,您是否在您的项目中嵌入关键CSS? 你使用什么工具? 你遇到什么问题? 欢迎在文章下方分享你的经验!

(il, rb, ml, og)

1 赞 2 收藏 评论

图片 4

值得收藏!Web开发的各种性能工具

2015/06/22 · HTML5 · 性能

原文出处: Robin Rendle   译文出处:南北   

嗨,各位,又到了周末总结时间!得益于大量的 Grunt 和 Gulp 插件,我们可以轻松实现网站数据的可视化,虽然深入理解这些工具还比较困难,但分门别类的将它们列出来,也是很有帮助的。

WebPagetest

WebPagetest 是性能测试的黄金标准,它提供了多方面的量化指标用于性能测试,比如有一个基本的评分,用于评价当前页面优化的水平;有一个截图,显示页面加载后的视觉效果;还有一个浏览器加载资源的瀑布流...

根据用户浏览器真实的连接速度,在全球范围内进行网页速度测试,并提供详细的优化建议。

图片 5webpagetest

通过使用 API wrapper,也可以将 WebPagetest 的相关服务添加到 NPM 模块和命令行工具中。

  • webpagetest-mapper:将 WebPageTest 的测试数据转换为可读的文档格式。
  • WPT Bulk Tester:使用 Google Docs 测试多个 URLs(如果你拥有 API key,也可以使用 webpagetest.org 来做这件事,或者其他公开可访问的实例)。

什么是关键 CSS

2017/10/05 · CSS · CSS

原文出处: Dean Hume   译文出处:众成翻译   

网络速度很慢,但是有一些简单的策略可以使网站变快。其中之一就是将关键的css内联插入到网页的``标签, 但是,如果您的网站包含数百页,甚至更糟糕的是包含数百种不同的模板,那么你该怎么做呢? 你不能手动做这件事。 Dean Hume解释了一个简单的方法来完成它。如果您是经验丰富的网页开发人员,您可能会发现这篇文章显而易见,并且不言而喻,但对于您的客户和初级开发人员来说,这是一个很好的选择。— Ed.

提供快速,流畅的网络体验是如今构建网站的重要部分。 大多数情况下,我们开发网站,而不去理解浏览器实际在做什么。 浏览器是如何从我们创建的HTML,CSS和JavaScript渲染我们的网页? 我们如何使用这些知识来加速我们网页的渲染

Chrome 开发者工具

在 Chrome 的开发者工具中,对于评估性能有两个非常有用的标签:Audits 和 Network。

Audit 面板用于分析加载的页面。它可以提供优化建议,减少页面加载时间,加快页面的响应速度。

图片 6

Network 面板以动态的方式实时地展示了资源的请求和下载。虽然辨析和定位这些请求会比纯粹的加载页面多花一些时间,但这些消耗对于指导页面的性能优化是非常重要的。

图片 7

CSS Shrink

CSS 压缩工具。由于 CSS 是页面渲染的核心文件,所以必须保持轻巧,便于快速响应和渲染。

深入了解

正如大多数优化工具,对你的网站总有利弊。弊端之一是 丢失浏览器中的CSS缓存 。 如果动态网页更改频繁,我们不希望缓存HTML页面 这意味着内联CSS 每次重新下载。 需要说明的是只列出关键的CSS,异步加载剩下的非关键的CSS。 我们可以缓存非关键的CSS。有很多争论和反对关于在``中内联CSS, 了解更多我推荐 Hans Christian Reinl的博客 “A counter statement: Putting the CSS in the head”。

如果您使用(CDN),也值得一提的是,您还应该 从CDN中提供非关键的CSS。 这样做允许您直接从边缘提供缓存的资源,提供更快的响应时间,而不是一路路由到源服务器来获取它们。

对于传统的网页,内联CSS的技术运作良好,但根据您的情况,可能并不总是适用。 如果您有客户端JavaScript生成HTML怎么办? 如果您在单页面应用程序上怎么办? 如果您尽可能多地输出关键的CSS,它将提升页面渲染效果。 了解关键CSS的工作原理及是否适用于您的网页,这一点很重要。 我喜欢Guy Podjarny对此的立场:

“尽管有这些限制,Inline在前端优化领域仍然是一个很重要的工具。 因此,你应该使用它,但要小心,不要滥用它。“

—Guy Podjarny

在 “为什么内联一切不是答案”,他提供了关于什么时候应该_什么时候不应该嵌入CSS的好建议。

浏览器工具盒插件

HTMLMinifier

HTMLMinifier 是一个高度可配置、经过完善的测试、基于 JavaScript 的 HTML 压缩工具,并且内置了代码审查类的工具。

在 SmashingMag阅读更多:

  • 改善粉碎杂志的表现:案例研究
  • PostCSS介绍
  • 预加载,有什么好处?
  • 前端性能检查表

如果我想快速提高网站的性能, Google的 PageSpeed Insights 工具是我的首选。 当尝试检测网页并找到需要改进的区域时,这非常有用。 您只需输入要测试的页面的URL,该工具就会提供一系列性能建议。

如果您曾经通过PageSpeed Insights工具运行自己的网站,您可能会遇到以下建议。

图片 8

CSS and JavaScript 会阻塞页面的渲染。 (查看大图)

我必须承认,我第一次看到这个时有点困惑。 该建议的内容如下:

“如果以下资源未下载完成,您的页面上的任何内容都不会被渲染。 尝试延迟或异步加载阻塞资源,或直接在HTML中内联嵌入这些资源的关键部分。“

幸运的是,解决这个问题比看起来更简单! 答案在于CSS和JavaScript在您的网页中的加载方式。

HTML

SpeedCurve

SpeedCurve 既可以让你追踪竞争对手的性能表现,也可以追踪自己的性能表现。使用 SpeedCurve 时,你可以查看某个因素在不同站点的速度表现。对于移动用户来说,他们希望网站在手机上加载起来要快于电脑,如果感到加载迟缓,往往会迅速关上网页,所以,网站的响应速度对他们很重要。

图片 9speedcurve

测试

一如以往,测试任何新的变化是非常重要的。 如果您想要测试更改,有一些很棒的工具可以在线免费使用。进到 Google’s PageSpeed Insights 并通过该工具运行您的URL。 您应该注意到,您的网页现在不再具有任何阻塞资源,并且您的性能改进建议已经变绿 。而你可能也熟悉了另一个伟大的工具。WebPagetest

图片 10

使用WebPagetest是测试您的网页及时呈现的好方法。 (查看大图)

它是一个免费的工具,可以让您从全球各个地点进行网站速度测试。 除了对您的网页的内容进行丰富的分析性审查,如果您选择“Visual Comparison”, 该工具将比较两个网页。 这是比较更新您的关键CSS之前和之后的结果并回放差异的好方法。

使用关键CSS的想法是,我们的网页会尽快呈现,从而尽快向用户展示内容。 测量这个的最好方法是使用 speed index. WebPagetest采用的测量方法是衡量页面内容的视觉填充速度。SpeedIndex测量可视页面加载的视觉进度,并计算内容绘制速度的总体得分。 比较 SpeedIndex测量通过内联关键CSS之前和之后的改变。 您将对您的渲染时间的改变大吃一惊。

Yslow

Yslow 基于 Yahoo 的高性能网页教条,分析网页的性能并给出响应缓慢的原因。

uncss

UnCSS 是一个用于移除脚本中无用 CSS 的工具。它可以审查多个文件,也可以审查由 JavaScript 注入的 CSS。

它也可以被集成到 Grunt 和 Gulp 中。

什么是关键CSS?

对CSS文件的请求可以显著增加网页呈现所需的时间。 原因是默认情况下,浏览器将延迟页面呈现,直到它完成加载、解析和执行所有在“页面”中引用的CSS文件。 这样做是因为它需要计算页面的布局。

不幸的是,这意味着如果我们有一个非常大的CSS文件,并且需要一段时间才能完成下载,我们的用户将在浏览器开始呈现页面之前等待整个文件被下载下来。 幸运的是,有一个巧妙的技术,使我们能够优化我们的CSS的传输并减轻阻塞。这种技术被称为优化关键渲染路径。 关键渲染路径表示浏览器呈现页面的所有必须步骤。 我们想要找到最小的阻塞CSS集合 ,或者关键 CSS,以使页面显示给用户。 关键资源是可能阻塞页面首屏呈现的所有资源。 这背后的想法是,网站应该在前几个TCP数据包响应中为用户获取第一个屏幕的内容(或“首屏”内容)。 想要简要了解如何在网页上工作,请查看下面的图片。

图片 11

关键 CSS是向用户呈现第一屏的内容所需CSS的最少集合。 (查看大图)

在上面的示例中,网页的关键部分只是用户在首次加载页面时可以看到的内容。 这意味着我们只需要加载最小量的CSS来渲染页面顶部的内容。 对于CSS的其余部分,我们不需要担心,因为我们可以异步加载它。

我们如何确定关键CSS? 确定页面的关键CSS是相当复杂的,需要您浏览网页的DOM。 接下来,我们需要确定当前应用于视图中每个元素的样式列表。 手动执行此操作将是一个繁琐的过程,但是一些很棒的工具可以自动执行这个过程。

在本文中,我将向您展示如何使用关键的CSS提高您的网页呈现速度,并介绍一个可以帮助您自动执行此过程的工具。

CDNperf

上述的 CDNs 并不能托管你任意的资源,它们往往只是托管最频繁用到的文件。虽然对于线上产品来说将资源和服务器托管到私有的 CDN 上并不是最好的方式,但这种方式对于分发资源来说仍然是快速和简单的。

CDNperf 可以帮你找出最快和最可信赖的 JavaScript CDNS,让你的网站更快更有朝气。

图片 12

MaxCDN

CSS-Tricks 当前就在使用 MaxCDN 托管所有的静态资源。它可以无缝地融合 WordPres 和 W3 的所有缓存资源,所以我们无需做什么特别处理,即可将资源移入 CDN,并能保证链接的准确性。

图片 13对于一个博客来说,考虑到其中的大文件主要是 JavaScript、CSS 和图片,而不是视频等类型,这带宽占用的可真多。

我们的 CDN 服务同样是一个网站加速器和实时控制中心。创建它,就是为了让网站的用户和运维都能从下一代 CDN 中获得最大收益。

这不完美

虽然生成和内联关键CSS所需的许多工具都在不断改进,但可能还有一些需要改进的领域。 如果您发现任何错误,您的项目,open up an issue 或提出请求,并在GitHub贡献项目。

为您的网站优化关键渲染路径可以大大改善页面加载时间。 使用这种技术使我们能够使用响应式布局,而不会影响其众所周知的优点。 这也是确保您的页面加载快速而不妨碍您的设计的好方法。

Triamge

Triamge 是一个扩平台的 GUI 和 CLI 工具,用于优化网站的图片文件。它组合使用 optipng、pngcrush、advpng 和 jpegoptim,并根据文件类型做优化(最新版本中,已经支持 PNG 和 JPG)。

图片 14

grunt-perfbudget

用于评估性能的 Grunt task。 grunt-perfbudget 使用 WebPagetest 的公有或私有实例在特定的 URL 进行测试。它会将测试结果和你预期的性能期望做比较,如果小于预期,那么这个 task 就顺利完成了,如果超过了你预期的性能期望,那么就会报告失败,并且会帮助你分析超出预期的原因。

开始

我们先从Node.js控制台开始,并导航到您的网站的路径。 通过在您的控制台中输入以下命令来安装Grunt命令行界面:

npm install -g grunt-cli 

1
2
npm install -g grunt-cli


这将把grunt命令放在你的系统路径中,允许从任何目录运行它。 接下来,使用以下命令安装Grunt任务运行程序:

npm install grunt --save-dev 

1
2
npm install grunt --save-dev


然后安装 grunt-critical 插件.

npm install grunt-critical --save-dev 

1
2
npm install grunt-critical --save-dev


接下来,您需要创建项目任务配置的Gruntfile。 看起来有点像下面的代码。

module.exports = function (grunt) { grunt.initConfig({ critical: { dist: { options: { base: './' }, // The source file src: 'page.html', // The destination file dest: 'result.html' } } }); // Load the plugins grunt.loadNpmTasks('grunt-critical'); // Default tasks. grunt.registerTask('default', ['critical']); }; 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
module.exports = function (grunt) {
grunt.initConfig({
  critical: {
    dist: {
      options: {
        base: './'
      },
      // The source file
      src: 'page.html',
      // The destination file
      dest: 'result.html'
      }
    }
  });
  // Load the plugins
  grunt.loadNpmTasks('grunt-critical');
  // Default tasks.
  grunt.registerTask('default', ['critical']);
};


在上面的代码中,我配置了 Critical 插件来查看我的page.html文件。 然后它会根据给定的页面处理CSS来计算关键的CSS。 接下来,它将内联关键的CSS并相应地更新HTML页面。

通过在控制台中输入grunt来运行插件。

图片 15

使用Grunt自动检测网络性能。(查看大图)

如果您导航到该文件夹,则应该会注意到一个名为result.html的文件,其中包含内联的关键CSS,而剩余的CSS异步加载。 您的网页现在就可以使用了!

在幕后, 插件自动使用 PhantomJS, 一个无头WebKit浏览器,捕获所需的关键CSS。 这意味着它能够静默地加载您的网页并测试最佳关键CSS。 这个功能还保证了插件在不同屏幕尺寸上的灵活性。 例如,您可以提供不同的屏幕尺寸,插件将相应地捕获并内联您的关键CSS

critical: { dist: { options: { base: './', dimensions: [{ width: 1300, height: 900 }, { width: 500, height: 900 }] }, files: [ {src: ['index.html'], dest: 'dist/index.html'} ] } } 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
critical: {
  dist: {
    options: {
      base: './',
      dimensions: [{
        width: 1300,
        height: 900
      },
      {
        width: 500,
        height: 900
      }]
    },
    files: [
      {src: ['index.html'], dest: 'dist/index.html'}
    ]
  }
}


上面的代码将从多个维度处理给定的文件,并内联相应的关键CSS。 这意味着您可以根据多个屏幕宽度运行您的网站,并确保您的用户仍然拥有相同的体验。 我们知道,使用3G和4G的移动连接可能是不稳定的 – 这就是为什么这种技术对于移动用户来说如此重要。

CSS Shrink

CSS 压缩工具。由于 CSS 是页面渲染的核心文件,所以必须保持轻巧,便于快速响应和渲染。

perf.js

在开发过程中,将性能的时序情况显示在页面上。

uncss

UnCSS 是一个用于移除脚本中无用 CSS 的工具。它可以审查多个文件,也可以审查由 JavaScript 注入的 CSS。

它也可以被集成到 Grunt 和 Gulp 中。

Triamge

Triamge 是一个扩平台的 GUI 和 CLI 工具,用于优化网站的图片文件。它组合使用 optipng、pngcrush、advpng 和 jpegoptim,并根据文件类型做优化(最新版本中,已经支持 PNG 和 JPG)。

图片 16image

Critical path

提取和整合 HTML 中关键的 CSS。

Sitespeed

Sitespeed.io 是一个基于最佳实践以及一些加载时序等量化标准的开源工具,有助于开发者分析网页的加载速度和渲染性能。它会从开发者的站点收集多个页面的数据,根据最佳实践等规则来分析这些网页,并将结果以 HTML 的形式输出,或者以数值的形式发送到 Graphite。

WebPagetest

WebPagetest 是性能测试的黄金标准,它提供了多方面的量化指标用于性能测试,比如有一个基本的评分,用于评价当前页面优化的水平;有一个截图,显示页面加载后的视觉效果;还有一个浏览器加载资源的瀑布流…

根据用户浏览器真实的连接速度,在全球范围内进行网页速度测试,并提供详细的优化建议。

图片 17

通过使用 API wrapper,也可以将 WebPagetest 的相关服务添加到 NPM 模块和命令行工具中。

  • webpagetest-mapper:将 WebPageTest 的测试数据转换为可读的文档格式。
  • WPT Bulk Tester:使用 Google Docs 测试多个 URLs(如果你拥有 API key,也可以使用 webpagetest.org 来做这件事,或者其他公开可访问的实例)。

你也许并不需要某些 jQuery 插件

jQuery 及其附属工具都是非常优秀的项目,使用它们往往使开发工作轻松而又快捷。

另一方面,如果你正在开发一个库,那么你需要思考一下是否真的需要依赖于 jQuery。也许你只需要引入几行代码,就可以放弃引入一个库实现某些功能。如果你的库只是针对于高级浏览器,那么可能直接调用浏览器的内置函数就可以实现相关功能了。

图片 18image

  • Usertiming API
  • Jank Free
  • Scrolling performance
  • Mobile web performance auditing
  • Gone in 60 frames per second
  • Udacity course on rendering performance

SpeedCurve

SpeedCurve 既可以让你追踪竞争对手的性能表现,也可以追踪自己的性能表现。使用 SpeedCurve 时,你可以查看某个因素在不同站点的速度表现。对于移动用户来说,他们希望网站在手机上加载起来要快于电脑,如果感到加载迟缓,往往会迅速关上网页,所以,网站的响应速度对他们很重要。

图片 19

speedgun

该网站允许你使用 Speedgun.js 收集任意公开站点的性能数据。它会运行五次,并显示一个友好的示图,帮助开发者了解当前页面的加载过程。

GT Metrix

GT Metrix 结合了 Google PageSpeed 和 YSlow,帮助开发者创建快速、高效和全面优化的网页浏览体验。

图片 20

SVGOMG

SVGOMG 是 SVGO's Missing GUI 的缩写,旨在揭露 SVG 文件的主要问题,而不具有 SVGO 的完整可配置项。

图片 21image

本文由澳门皇冠金沙网站发布于前端开发,转载请注明出处:什么是关键,前端性能优化和测试工具总结