Tôi đã cố gắng sử dụng một cái gì đó như thế này để tăng hiệu suất khi nhấp từ trang đích đơn giản đến ứng dụng trang đơn hạng nặng:
<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" />
Nó dường như không có hiệu suất tăng đáng chú ý khi trang đích của tôi nằm trên một tên miền phụ. Say, https://subdomain.example.com
.
Khi tôi nhấp vào liên kết để truy cập https://example.com
, tôi vẫn thấy một độ trễ dài trong tab mạng Chrome như app.js
và app.css
được tải:
Đây là tài nguyên tương tự với tính năng tìm nạp trước bị vô hiệu hóa:
Nó mất khoảng cùng một lượng thời gian trong tổng số.
Yêu cầu các tiêu đề cho một trong những tài sản được tải với bộ đệm tìm nạp trước:
Chung:
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
Phản ứng:
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
Yêu cầu:
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
Câu hỏi của tôi là: Nếu Chrome chỉ ra rằng bộ đệm tìm nạp trước được sử dụng thì tại sao lại có thời gian tải xuống nội dung đáng kể?
Dường như Chrome có các loại bộ đệm khác nhau: bộ đệm tìm nạp trước, bộ đệm đĩa và bộ nhớ cache. Bộ nhớ cache trên đĩa và bộ nhớ cache rất nhanh (thời gian tải 5ms và 0ms). Tuy nhiên, bộ đệm tìm nạp trước khá vô dụng với thời gian tải xuống 300ms đôi khi. Tôi có thể có được một lời giải thích kỹ thuật về lý do tại sao điều này xảy ra? Đây có phải là một lỗi với Chrome không? Tôi đang sử dụng Chrome 79.0.3945.117.