2016-04-20 68 views
0

我有一个网站,GTmetrix pagespeed测试(89谷歌)得分高达88%,总页面大小为343kb,页面加载时间为1.4s,但它需要和年龄时显示测试(约20秒)网站速度和杠杆浏览器缓存

该网站与Go爸爸托管,并认为这可能是问题,但它证明了这一点。

这是一个托管的Plesk帐户,我想能够使用浏览器快取,我添加了一个.htaccess文件包含下列根:

# BEGIN Expire headers 

<ifModule mod_expires.c> 

ExpiresActive On 
ExpiresDefault "access plus 1 week" 
ExpiresByType image/x-icon "access plus 2592000 seconds" 
ExpiresByType image/jpeg "access plus 2592000 seconds" 
ExpiresByType image/png "access plus 2592000 seconds" 
ExpiresByType image/gif "access plus 2592000 seconds" 
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" 
ExpiresByType text/css "access plus 604800 seconds" 
ExpiresByType text/javascript "access plus 604800 seconds" 
ExpiresByType application/x-javascript "access plus 604800 seconds" 
ExpiresByType text/html "access plus 604800 seconds" 
ExpiresByType application/xhtml+xml "access plus 1200 seconds" 

</ifModule> 

# END Expire headers 

我仍然得到错误信息,充分利用浏览器缓存需要启用,任何想法如何完成?

如果还有其他好的速度/网络测试来帮助解决慢速页面显示问题?

+0

对不起,但我不确定你的意思。所有的资源在1.4秒内加载,但浏览器需要20秒才能解析和格式化页面?... – War10ck

+1

您最喜欢的浏览器应具有devtools功能。那里应该有资源/网络/性能页面/选项卡/部分,详细的时间信息... –

+0

尝试页面速度插件的铬。它会给出建议以及文件的优化版本。 –

回答

3

你的问题是icomoon.tff。
字体文件被视为CSS。
在所有CSS加载到DOM之前,浏览器无法开始渲染页面。

该页面实际上开始在约1.6的地方开始渲染紫色条纹(DOM已加载)。

解析jQuery后,DOM几乎完成了1.563。

当遇到字体文件时,所有从1.6到1.85的渲染都被报废并且浏览器重新开始。

正如你所看到的,icomoon.tff从First Paint和Start Render之间的1.863开始。

将字体文件链接移动到标题中或添加它。更好的是,不要使用它。


缓存是另一个问题。过期不是缓存控制。
在HTTP响应头高速缓存控制是这样的:

Cache-Control: max-age=31536000, public 

您需要设置高速缓存控制。htaccess的或者在服务器配置

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|svg|swf|mp3|vtt|)(\.gz)?$"> 
Header set Cache-Control "max-age=31536000, public" 
</FilesMatch> 

jQuery是成本你。如果你想正确地做页面设计,不要使用jQuery。这个页面上没有什么需要jQuery来渲染。它可以很容易地没有。事实上,当我禁用JavaScript时,页面似乎呈现相同的效果。


CSS可能会更好。它耗费大约1.5秒的时间。
考虑到此页面可能会在大约0.500秒或更短的时间内加载,所以它会花费您3倍的页面加载时间。

enter image description here enter image description here

如果你做的CSS有效,而不是用别人的东西,在CSS会合身在HTML <head><style>而这个页面会开始前0.400渲染。


把它放在一个很好的服务器上,GoDaddy糟透了,你的页面加载可能低于0.300。 AWS在性能和价格上很难胜出。有了GoDaddy,你付出的太多钱太少了。


下列时间为从webpagetest.org

domElements' => 115, 
pageSpeedVersion' => '1.9', 
title' => 'Trinitas Designs', 
titleTime' => 877, 
loadEventStart' => 2646, 
loadEventEnd' => 2652, 
domContentLoadedEventStart' => 1563, 
domContentLoadedEventEnd' => 1808, 
lastVisualChange' => 2680, 
browser_name' => 'Google Chrome', 
browser_version' => '50.0.2661.94', 
server_count' => 1, 
server_rtt' => 139, 
base_page_cdn' => '', 
adult_site' => 0, 
fixed_viewport' => 1, 
score_progressive_jpeg' => 0, 
firstPaint' => 1852, 
docCPUms' => 1653.611, 
fullyLoadedCPUms' => 1887.612, 
docCPUpct' => 61, 
fullyLoadedCPUpct' => 36, 
isResponsive' => -1, 
browser_process_count' => 9, 
browser_main_memory_kb' => 50872, 
browser_other_private_memory_kb' => 71108, 
browser_working_set_kb' => 121980, 
domInteractive' => 1563, 
date' => 1462831114, 
SpeedIndex' => 2278, 
visualComplete' => 2680, 

icomoon.tff

full_url' => 'http://www.trinitasdesigns.com/fonts/fonts/icomoon.ttf?2ym5un', 
score_progressive_jpeg' => -1, 
load_end' => 2638, 
ttfb_start' => '1863', 
ttfb_end' => 2033, 
download_start' => 2033, 
download_end' => 2638, 
download_ms' => 605, 
all_start' => '1863', 
all_end' => 2638, 
all_ms' => '775', 

enter image description here

enter image description here

+0

谢谢,必须赞赏! – TJ15

0

如果您启动浏览器中的开发人员工具并查看其中一个HTTP请求,它看起来不像Expires标头设置正确。

Network tab

如果我重新加载页面它使另一个完整的请求,我得到一个200响应。你的htaccess文件看起来不错,但你试过下面又例如,一个在这篇文章中看起来像全包:

https://paulund.co.uk/set-expire-headers-in-htaccess

您可能还需要添加:

Header append Cache-Control "public" 

要将htaccess文件。

+0

感谢您的帮助。该网站托管在Go爸爸使用他们的Windows plesk设置,我相信IIS。我认为.htaccess可能因此被忽略。我试图创建/修改web.config文件,但这似乎阻止访问该位置的任何文件,即如果我把它放在图像文件夹中,没有图像显示在页面上,如果我把它放在根目录我得到500服务器错误。有没有必须配置,可以通过主机完成(据我所知) – TJ15

+0

啊 - IIS不使用htaccess文件,这是为Apache。您将需要更新IIS的Web.config文件。你看过这个链接吗? https://www.iis.net/configreference/system.webserver/caching – Deano

+0

查看HTTP响应头,此站点由Apache/2.4.18托管。您必须从Windows升级到Apache。但仍然在GoDaddy上,Apache是​​朝着正确方向迈出的一步。现在转储GoDaddy。 – Misunderstood