Use <link rel="preload"> to actively load key resources, suitable for fonts, CSS, JS, etc., and need to be matched with the as attribute and placed in
; 2. Use <link rel="prefetch"> to prefetch resources that may be used in the future, suitable for the content of the next page, often dynamically added at the bottom of the page or through JavaScript; 3. Reasonably match dns-prefetch and preconnect to reduce DNS resolution and connection time, give priority to preconnect but avoid abuse; 4. Pay attention to the usage scenarios and priorities of preloading to avoid affecting the performance of the first screen and wasting bandwidth, and prevent common misunderstandings.To put it bluntly, preloading or pre-acquisitioning resources means preparing the resources that may be used in the web page in advance to make the page load faster and the user experience smoother. The key is "early" and "precision". You cannot add it blindly, otherwise it will slow down performance.
1. Use <link rel="preload">
to actively load key resources
<link rel="preload">
is a way provided by the browser to let you tell it which resources are critical and should be loaded first.
- Suitable for key resources such as fonts, CSS, JS, and pictures.
- It needs to be used with
as
attribute to tell the browser resource type, such as:as="font"
oras="script"
. - It works best in HTML
.
For example:
<link rel="preload" href="main.js" as="script"> <link rel="preload" href="myfont.woff2" as="font" type="font/woff2" crossorigin>
Note: Cross-domain fonts must be included with
crossorigin
attribute, otherwise the loading will fail.
2. Use <link rel="prefetch">
to prefetch resources that may be used in the future
rel="prefetch"
prefers the optimization of "next visit" and is suitable for resources for linked pages, such as the page content that the user clicks and jumps.
- Commonly used to preload static resources such as CSS, JS, and pictures.
- Usually dynamically added at the bottom of the current page or via JavaScript.
- The browser will download these resources when it is idle, and will not affect the performance of the current page.
Example:
<link rel="prefetch" href="/next-page.css">
You can also combine the mouse hover event to start prefetching before the user is ready to click:
document.querySelector('a').addEventListener('mouseover', () => { const link = document.createElement('link'); link.rel = 'prefetch'; link.href = '/target-page.css'; document.head.appendChild(link); });
3. Reasonably match dns-prefetch
and preconnect
Sometimes the bottleneck is not in the resource itself, but in the network connection. These two tags can help you save time in DNS resolution and TCP handshake.
-
dns-prefetch
: only performs DNS resolution, suitable for external CDN resources.
<link rel="dns-prefetch" href="//example.com">
-
preconnect
: Not only parsing DNS, but also establishing TCP connections (even TLS), one step faster.
<link rel="preconnect" href="//example.com">
It is recommended to use preconnect
first, but be careful not to abuse it, as each consumes the number of connections to the browser.
4. Don't mess around, pay attention to usage scenarios and priorities
The more preloading, the better. Maybe it will affect the performance of the first screen and even waste bandwidth.
- Don't preload too many large files (such as HD videos).
- Do not preload at will on the mobile side, as users may be in a traffic environment.
- It can be dynamically determined whether to preload based on device type or user behavior.
Some common misunderstandings:
- Preload all pictures → slow down the first screen.
- Forgot to set the
as
attribute → The browser cannot correctly recognize the resource type. - Loading HTTPS resources in non-HTTPS pages → A mixed content issue occurred.
Basically that's it. Reasonable use of preload and prefetch can make the page go up quickly, but the premise is that the right place must be used.
The above is the detailed content of How to preload or prefetch resources. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

ToimplementdarkmodeinCSSeffectively,useCSSvariablesforthemecolors,detectsystempreferenceswithprefers-color-scheme,addamanualtogglebutton,andhandleimagesandbackgroundsthoughtfully.1.DefineCSSvariablesforlightanddarkthemestomanagecolorsefficiently.2.Us

The topic differencebetweenem, Rem, PX, andViewportunits (VH, VW) LiesintheirreFerencepoint: PXISFixedandbasedonpixelvalues, emissrelative EtothefontsizeFheelementoritsparent, Remisrelelatotherootfontsize, AndVH/VwarebaseDontheviewporttimensions.1.PXoffersprecis

CSSHoudini is a set of APIs that allow developers to directly manipulate and extend the browser's style processing flow through JavaScript. 1. PaintWorklet controls element drawing; 2. LayoutWorklet custom layout logic; 3. AnimationWorklet implements high-performance animation; 4. Parser&TypedOM efficiently operates CSS properties; 5. Properties&ValuesAPI registers custom properties; 6. FontMetricsAPI obtains font information. It allows developers to expand CSS in unprecedented ways, achieve effects such as wave backgrounds, and have good performance and flexibility

CSSgradientsenhancebackgroundswithdepthandvisualappeal.1.Startwithlineargradientsforsmoothcolortransitionsalongaline,specifyingdirectionandcolorstops.2.Useradialgradientsforcirculareffects,adjustingshapeandcenterposition.3.Layermultiplegradientstocre

ReactivitytransforminVue3aimedtosimplifyhandlingreactivedatabyautomaticallytrackingandmanagingreactivitywithoutrequiringmanualref()or.valueusage.Itsoughttoreduceboilerplateandimprovecodereadabilitybytreatingvariableslikeletandconstasautomaticallyreac

Choosing the correct display value in CSS is crucial because it controls the behavior of elements in the layout. 1.inline: Make elements flow like text, without occupying a single line, and cannot directly set width and height, suitable for elements in text, such as; 2.block: Make elements exclusively occupy one line and occupy all width, can set width and height and inner and outer margins, suitable for structured elements, such as; 3.inline-block: has both block characteristics and inline layout, can set size but still display in the same line, suitable for horizontal layouts that require consistent spacing; 4.flex: Modern layout mode, suitable for containers, easy to achieve alignment and distribution through justify-content, align-items and other attributes, yes

InternationalizationandlocalizationinVueappsareprimarilyhandledusingtheVueI18nplugin.1.Installvue-i18nvianpmoryarn.2.CreatelocaleJSONfiles(e.g.,en.json,es.json)fortranslationmessages.3.Setupthei18ninstanceinmain.jswithlocaleconfigurationandmessagefil

In Vue, provide and inject are features for directly passing data across hierarchical components. The parent component provides data or methods through provide, and descendant components directly inject and use these data or methods through inject, without passing props layer by layer; 2. It is suitable for avoiding "propdrilling", such as passing global or shared data such as topics, user status, API services, etc.; 3. Note when using: non-responsive original values ??must be wrapped into responsive objects to achieve responsive updates, and should not be abused to avoid affecting maintainability.
