- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我对 rel="preload"
属性感到很兴奋,因为它看起来可以帮助加快页面呈现时间。
用例是一个网页,首屏有一张大图片。现在,Chrome 直到获取 jQuery(一个相当大的文件)后才开始下载图像。启用预加载后,它们会并行下载。
但我正在阅读相互矛盾的报告,关于我是否应该对其他地方可见 HTML 元素中的内容(而不是通过用户交互显示的内容,如下拉菜单)使用 preload
。
This post似乎建议不要预加载:
When not to use preloading:
- When the asset is referred to somewhere else on the same page.
- When you're not sure the user will actually require that asset. Like on a page visitors only go to 3% of the time.
同时 this one似乎表明它对金融时报网站上的类似情况确实有帮助:
When the Financial Times introduced a Link preload header to their site, they shaved 1 second off the time it took to display the masthead image...
那是什么?我是否应该提供一个早期的“提示”来显示始终显示的首屏图像?或者我应该让浏览器按通常的顺序访问它吗?
最佳答案
我认为在涉及性能优化的情况下,你真的很想create an A/B test来确定你应该做哪一个。对于作为最佳实践适用于每个人的图像预加载,确实没有千篇一律的答案。
我最喜欢的一本书的最大原则之一,Lean Enterprise , 用于 A/B 测试来证明或反驳 HIPPO(高薪人士的意见)。某些意见在您的组织和互联网上都具有很大的分量。由于他们的重要性和声誉,他们的观点倾向于事实领域,尽管事实可能并非如此。
凭经验衡量性能的做法也被另一本我喜欢的关于性能调优的书所吹捧 - Code Complete 2nd Ed.在那本书中,McConnell 给出了几个代码示例,其中您期望一段代码是最佳的,但实际上它的性能很差(参见第 25 和 26 章)。他的要点之一是您应该始终测试性能优化。 如果不值得测试,那么一开始就不值得编写“高性能”代码。 McConnell 的前提不仅适用于他的低级编码示例,还适用于高级决策,例如在首屏预加载图像。
我还可以证明 A/B 测试在专业水平上的重要性。我曾经在亚马逊的 SEO 团队工作,我们对所有内容都进行了 A/B 测试。事实上,您永远无法真正了解客户对某事的 react 。没有人可以预测客户行为 - 甚至 Jeff Bezos 也不行 - 你确实需要用真实数据来支持你的假设,以证明或反驳你正在做的事情的有效性。
即使您可以找到多篇博客文章和在线资源来讨论预加载是否更好,但在您完成之前,您并不知道它是否适合您。不同的人拥有不同的服务器,这些服务器具有不同的性能特征和不同的网络拓扑等。在您拥有数据之前,您根本不知道哪种方式更适合您。。如果您启动 A/B 测试并发现您的排斥率在预加载时上升,那么您知道您必须拨回您的处理并返回到您的控制。但是,如果您发现客户不会厌倦等待并以比以前更高的速度点击通过,那么您就有了赢家,您可以拨通治疗方案 - 在一段时间后完全删除控制代码。
希望对您有所帮助。
关于html - 我应该预加载折叠上方的大图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46778152/
假设有一个具有非常简单的 UI 层次结构的窗口,它只有两个同级: NSTextView 和 NSButton,并且它们确实重叠。 我的问题是,为什么光标悬停在按钮上时会有所不同,具体取决于其下方是否有
例如,当我将 TPanel 添加到表单并使用 alTop 对齐它,然后将 TMainMenu 添加到同一表单时,主菜单位置会覆盖面板位置,以便主菜单保持在窗体的最顶层,面板显示在其下方。 是否可以覆盖
我想构建一个 UI,其中我在屏幕顶部有一些固定的小部件(在所有选项卡上可见),然后在它们下面我想要一个 TabBarView(底部有选项卡栏),这是否可能而不使您的自己的标签小部件还是 TabBarV
我一直在这里关注 Phaser 3 的介绍 http://phaser.io/tutorials/making-your-first-phaser-3-game并发现我的 Angular 色“悬停”在
我在 View 中间有一个 UITextView,在 View 底部有一个 UIToolBar。当我触摸 UITextView 时,我希望在 UIToolBar 上方出现一个可视键盘。我该怎么做? 最
我正在尝试制作井字游戏,我有一个 3 x 3 按钮网格,但我想在按钮上方有一个栏,显示分数和玩家姓名,有人可以帮助我吗?到java,不知道从哪里开始。 import javax.swing.*; im
是否可以指定 noUiSlider 绘制的工具提示的位置?似乎默认情况下它将第一个放在 slider 上,第二个放在下面。我理解这里的可用性目标,但我想把两者都放在上面或下面。 示例(带有上方和下方的
我的应用程序中有主详细布局(参见左图): 我为操作栏设置了导航模式列表(使用它来过滤第二个 fragment 中的 ListView ): final ActionBar actionBar = ge
我是 iOS 编程新手,在使用 XLPagerTabStrip(github.com/xmartlabs/XLPagerTabStrip) 时遇到了困难。我按照它的教程,成功在VC的顶部添加了Page
这个问题适用于任何项目,但在这种情况下,我想将我的图像放置在 map 上方,目前它位于 map 下方。 我是 swift 1.2 的新手,所以我不知道如何组合一个示例,任何帮助将不胜感激。 最佳答案
我如何在 javascript 中确定一个元素是否在视口(viewport)上方(用户已经滚动过它)(不仅仅是它是否可见)? 在这段代码中: 控制台日志(iselement1aboveviewport
我正在尝试将工具栏添加到我的 View Controller 。 我的 View Controller : -(void)loadView { UIWebView *webView = [[U
我知道这是一个一般性问题,但任何方向都会有所帮助。 所以我正在使用这个模块 https://github.com/maxep/MXSegmentedPager尝试重新创建 Twitter 的个人资料页
我需要在保存按钮下放置一个带有 id 的 div。这是 html 代码: save 这是我的 : 通过这种方式,div 隐藏了按钮,我的目的是在 div 上方显示按钮。
我试图将我的整个 refreshControl 放在 tableview 后面。我可以通过这样做来放置实际的微调器: self.tableView.addSubview(refreshContro
这在 Safari 和 Firefox 中都会发生。我的导航栏看起来像这样: Test 相关的 CSS 看起来像: li { float: left } a:hover {
我在 CSS 中的 #footermain div 上有一个框阴影,但我无法让它显示在绿色页脚上方。我什么都试过了,还是想不通。 #footermain { background: #1f6c
我试图将图像部分放置在旋转 slider 上方( slider 上侧的一部分应该被图像覆盖)我试过 image{position:relative; z-index:10; } slider{posi
我认为这是一个简单的问题,但我无法理解它。我在页面顶部有一个固定的 div,当我向下滚动查看内容时,内容(文本)显示在该固定 div 上方 5 像素的边距中。该边距(黑色,请参阅 https://js
我有两个 div,在页脚配置中。目的是在悬停时通过显示隐藏的 div 向上扩展页脚。 #extendedFooter, #test { display: none; } #standardFo
我是一名优秀的程序员,十分优秀!