2016-12-02 2 views
0

Ainsi, une précontrainte https://w3c.github.io/preload/ peut être définie comme une étiquette via le balisage déclaratifQuels sont les compromis entre la précontrainte des ressources comme un en-tête HTTP ou une balise dans la réponse?

<link rel="preload" href="/styles/other.css" as="style"> 

Ou comme un en-tête HTTP

Link: <https://example.com/other/styles.css>; rel=preload; as=style 

Mais quels sont les compromis entre les deux? Dans quelles circonstances l'étiquette doit-elle être utilisée et vice versa?

Répondre

0

Eh bien, il devrait être assez évident. Si c'est dans le HTML, vous devez analyser le HTML. Cela arrive après analyse les en-têtes, car vous avez besoin les en-têtes de savoir que vous êtes analyse HTML en premier lieu (et non, par exemple, image/jpeg ou text/plain).

Est-ce que cette cause en fait une différence de performance dans la pratique? C'est tout à fait impossible à dire en général, comme avec la plupart des questions de performance. Le point principal est toujours de séparer les E/S de l'exécution, ce qui est vrai pour les deux approches. font généralement appel à des en-têtes pour diverses optimisations d'accès et la mise en cache

et CDNs procurations. Ceci est évidemment moins cher que l'analyse syntaxique du HTML, alors peut-être que nous verrons quelques recommandations à cet effet :) Par exemple, je peux imaginer un proxy qui lance une pré-charge en fonction de l'en-tête HTTP avant qu'il ne soit même l'en-tête HTTP - juste en observant Les modèles communs dans quels types de demandes signifient généralement quels types de précharges. Lorsque la prédiction est adaptée, elle peut très bien éliminer la latence lors de la récupération, en particulier pour les connexions à latence élevée et pour les requêtes de longue durée.