Basit bir açılış sayfasından ağır tek sayfalık bir uygulamaya kadar performans artışı sağlamak için böyle bir şey kullanmaya çalışıyorum:
<link rel="prefetch" href="https://example.com" as="document" />
<link rel="prefetch" href="https://example.com/app.js" as="script" />
<link rel="prefetch" href="https://example.com/app.css" as="style" />
Açılış sayfam bir alt alandayken belirgin bir performans artışı yok gibi görünüyor. Söyle,https://subdomain.example.com
.
Ben ziyaret için bir bağlantıyı tıkladığınızda https://example.com
, hala olarak Chrome ağ sekmesinde uzun bir gecikmeyle bakın app.js
ve app.css
yüklü şunlardır:
Önceden getirme devre dışı bırakıldığında aynı kaynak şöyledir:
Toplamda yaklaşık aynı süreyi alır.
Ön getirmeli önbellek yüklü varlıklardan biri için üstbilgi isteyin:
Genel:
Request URL: https://example.com/css/app.bffe365a.css
Request Method: GET
Status Code: 200 (from prefetch cache)
Remote Address: 13.226.219.19:443
Referrer Policy: no-referrer-when-downgrade
Tepki:
accept-ranges: bytes
cache-control: max-age=31536000
content-encoding: gzip
content-length: 39682
content-type: text/css
date: Mon, 06 Jan 2020 21:42:53 GMT
etag: "d6f5135674904979a2dfa9dab1d2c440"
last-modified: Mon, 06 Jan 2020 20:46:46 GMT
server: AmazonS3
status: 200
via: 1.1 example.cloudfront.net (CloudFront)
x-amz-cf-id: dO3yiCoPErExrE2BLYbUJaVye32FIJXXxMdI4neDGzGX9a6gcCDumg==
x-amz-cf-pop: LAX50-C1
x-amz-id-2: 1O0LmihxpHIywEaMQWX7G3FDAzxtH9tZq1T/jeVLMzifFSJSIIJSS6+175H61kKdAq6iEbwfs2I=
x-amz-request-id: AF35C178092B65D4
x-cache: Hit from cloudfront
İstek:
DNT: 1
Referer: https://example.com/auth/join
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36
Benim sorum: Chrome önceden getirme önbelleğinin kullanıldığını belirtirse, neden önemli bir içerik indirme süresi vardır?
Görünüşe göre Chrome'un farklı önbellek türleri var: önbellek, disk önbelleği ve bellek önbelleği. Disk önbelleği ve bellek önbelleği çok hızlıdır (5 ms ve 0 ms yükleme süreleri). Ancak, önceden getirme önbelleği bazen 300ms indirme süreleri ile oldukça işe yaramaz. Bunun neden olduğuna dair teknik bir açıklama alabilir miyim? Chrome ile ilgili bir hata mı? Chrome 79.0.3945.117 kullanıyorum.