网页性能至关重要,但最近我感觉这个话题只被前端开发人员提起,并且只在项目结束时才会成为讨论的焦点。因此,每当我听到关于精简大型网站的解决方案时,我都不禁觉得这些仅仅是开发人员和工程师在初始设计流程启动后应该采用的建议或技巧。
那么,哪些设计主题会影响性能呢?好吧,任何设计师可能会问自己的问题。例如:
- 我们应该使用多少种字体?
- 我们应该使用什么样的图像?
- 我们需要什么样的分析脚本?
- 用户如何滚动浏览我们的应用?
- 这个复杂的组件如何影响我们的 CSS?
- 我们应该如何编写 CSS?
- 我们应该选择哪种框架?
通常情况下,这些问题会导致设计系统中出现更多代码、更多复杂性和更多膨胀,因为……
- 我们添加的字体越多,我们就需要让用户等待的时间越长。
- 我们为项目选择的图像类型会影响我们使用的图像格式。
- 如果我们选择了大量的分析工具,那么这也会减慢整个应用的速度。
- 在 CSS 中添加一个复杂的组件,而这个组件在应用中只会使用一次,会导致代码膨胀,并且会进一步减慢首次渲染时间(即使只是微不足道地减慢)。
- 决定使用哪个框架会对关键路径产生巨大影响。
简而言之,设计团队应该根据关键网页性能指标衡量他们的成功,因为他们做出的每一个决定最终都会导致发送到最终用户的数据发生巨大变化。
我开始这样思考这个问题:关于设计的每一次对话也都是关于网页性能的对话。我努力提醒自己,这两者是密不可分的,因此,作为一个网页设计师,我应该从项目的开始就考虑到这些问题,而不仅仅是在项目结束时。
https://pathtoperf.com/
有史以来最好的资源!他们刚刚开始第二季!Chris 干得好!
从一开始就考虑性能是好的。但是,任何项目都会有权衡取舍。在我看来,需要考虑的最重要的因素是发布。接下来是确保它易于维护。我发现,如果你在一开始就过多地考虑性能,就会开始进行过早优化,这会拖慢项目进度,并可能成为最重要因素(发布)的直接阻碍。
Robin 说得很好——我完全同意。正如 Brad Frost 所说:“通往更好性能的道路并非始于开发人员或技术栈。它始于每个人都共同关注制作一款闪电般快速的产品的愿望。” 链接
这么棒的帖子!感谢你的链接,Jon。
你必须问设计师哪些问题才能让他们意识到(比如)一个复杂的 20 MB 的视差滚动设计可能不是他们客户的最佳解决方案?你如何评估这类权衡取舍?
好的,让我们尝试改进这篇文章。
以下是一些我认为可以改进文章的问题
回退问题呢?渐进增强?设备特定的 hack?如何在一个页面上渲染一个新的元素?动画呢?使用当前设计——响应式是如何实现的?禁用 Javascript 后的性能如何?这是否需要考虑?我们有哪些需要考虑的问题?这是一个营销网站、网络应用、电子商务、单页面等?我们是否需要担心本地化?当前设计是否存在任何可访问性问题?
以下是目前我对这篇文章逐行提出的问题。
你在哪里工作?几乎所有可能的性能问题都会在任何工作开始之前就被提出,而未知的未知问题则会在以后被发现和解决。未知的未知问题只有通过更多的经验才能“已知”。你的团队越有经验,你遇到的未知的未知问题就越少。
几乎所有“精简”大型网站的方法都与资产的提供方式、任何 Javascript 的优化程度以及他们是否可以使用任何巧妙的技巧来“伪造”它有关。它们处理的是只有大型网站才需要担心的微优化。
我感觉我们实际上从未讨论过图形设计……
相反,你使用哪些字体要重要得多。使用 Google Fonts?根据个人测试,3 种字体和 10 种字重与 2 种字体和 4 种字重在初始加载时间上的差异可以忽略不计。如果你的设计使用了超过 2 种字体和 5 种字重,你可能需要与你的设计师讨论一下。
什么?
也许是我自己的无知——但你能说出 3 种以上不完全冗余的分析类型吗?
这是网页性能还是应用性能?我们现在是在讨论网站(第一行:“……精简大型网站……”)还是应用?也许是网络应用?这是试图为用户做出决定还是使用像 hotjar 这样的分析工具来查看用户如何实际与网络应用交互?(我假设我们现在正在讨论网络应用。)
除非你的流量像 Google 或 Facebook 一样大,否则 CSS 优化应该是你最不关心的问题。
“好吧”?这并不是一个优化问题——这是一个关于工具的问题。除非我们从网页性能切换到开发人员性能。
这也是一个工具问题。
我们从网页设计转向了应用设计,再到系统设计和工具。
字体的尺寸比 HTTP 请求的数量更重要。
啊哈!终于有一个纯粹与设计相关的优化问题:“这张图片应该是 jpg 还是 png?天哪,它甚至可能能够用 SVG 代替。”幸运的是,这是一个非常容易回答的问题,并且可以很容易地衡量。
参见我之前的评论。此外,为什么设计人员要选择分析工具?选择的分析工具将在很大程度上取决于营销团队需要跟踪什么内容。如果它更像网络应用,那么你可能会尝试跟踪用户以进行错误调试。
是的!这篇文章的其他部分完全没有涉及到这一点。也许是如何讨论重构组件或简化它?你应该更多地关注这个主题。
这实际上是三个流行语组合成一个句子。你能定义“关键路径”吗?我通常看到它被用来与“所有折叠以上内容”相关,而你最终使用的任何前端框架与你的网站的第一批字节将如何交付几乎没有关系。
在整篇文章中从未提及的那些“关键网页性能指标”是什么?你试图总结一些根本不存在的东西。
任何涉及代码的内容在某些时候都会成为对所述代码的优化和性能的关注。
某人起床后心情不好。
谢谢。
http://www.fahriyevcen.com
关于网页性能,如果你调整此页面大小,它会延迟(在 2015 年初的 Macbook Pro 13 英寸 10.11.6 上使用 Safari)