ฉันพยายามใช้สิ่งนี้เพื่อรับการปรับปรุงประสิทธิภาพเมื่อคลิกจากหน้า Landing Page อย่างง่ายไปยังแอพพลิเคชั่นหน้าเดียวที่มีน้ำหนักมาก:
<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" />
ดูเหมือนว่าจะไม่มีการเพิ่มประสิทธิภาพที่เห็นได้ชัดเจนเมื่อหน้า Landing Page ของฉันอยู่ในโดเมนย่อย https://subdomain.example.com
กล่าวว่า
เมื่อฉันคลิกที่ลิงก์เพื่อเยี่ยมชมhttps://example.com
ฉันยังคงเห็นความล่าช้าเป็นเวลานานในแท็บเครือข่าย Chrome ที่เป็นapp.js
และapp.css
โหลด:
นี่เป็นแหล่งข้อมูลเดียวกันที่ปิดใช้งานการดึงข้อมูลล่วงหน้า:
ใช้เวลารวมทั้งหมดเท่ากัน
ขอส่วนหัวสำหรับหนึ่งในเนื้อหาที่โหลดด้วยแคชการดึงข้อมูลล่วงหน้า:
ทั่วไป:
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
การตอบสนอง:
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
คำขอ:
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
คำถามของฉันคือ: หาก Chrome ระบุว่าใช้แคชการดึงข้อมูลล่วงหน้าแล้วเหตุใดจึงมีเวลาดาวน์โหลดเนื้อหาที่สำคัญ
ดูเหมือนว่า Chrome มีแคชหลายประเภท: แคชดึงข้อมูลล่วงหน้าแคชดิสก์และหน่วยความจำแคช แคชดิสก์และหน่วยความจำแคชเร็วมาก (โหลด 5ms และ 0ms) อย่างไรก็ตามแคช prefetch นั้นไม่มีประโยชน์เลยในบางครั้งการดาวน์โหลด 300 มิลลิวินาที ฉันขอคำอธิบายทางเทคนิคว่าทำไมสิ่งนี้จึงเกิดขึ้นได้ไหม เป็นข้อบกพร่องของ Chrome ใช่ไหม ฉันใช้ Chrome 79.0.3945.117