28 votes

Pourquoi HTML5 ne inclut-il pas de moyen de charger du HTML local dans le document?

J'y ai beaucoup réfléchi ces derniers temps. Pourquoi HTML5 ne vous permet-il pas vraiment de charger du HTML dans votre document pour diviser vos fichiers HTML?

Il prend en charge pratiquement tous les autres éléments (images, vidéos, audio).

Oui, nous avons des iframes, des embeds et des objets mais ils sont sandboxés et ne suivent pas le flux du reste du document.

Je pensais à quelque chose comme:

Ma merveilleuse application

J'aimerais que quelqu'un m'explique cela. Dans presque toutes les applications web que nous créons, nous utilisons une forme de templating pour diviser notre HTML, alors pourquoi HTML5 ne l'inclut-il pas simplement?

J'apprécierais vos réflexions (sans attaque).

Matt

19voto

yonran Points 6952

Il s'avère que cette question a été abordée dans les listes de diffusion du WHATWG : Proposition d'inclusion côté client : Shannon a proposé exactement ce que vous dites, où l'analyseur doit bloquer pendant le chargement de fragments de document. Ian Hickson l'a rejeté car le coût de la latence est trop élevé. De plus, c'est une fonctionnalité simple que de nombreux serveurs Web fournissent déjà, donc cela a été jugé non rentable.

Vous voudrez peut-être plutôt envisager d'utiliser l' attribut sans soudure du iframe, qui provoque l'insertion d'un document complet dans le document mais agit comme un élément de bloc standard (héritant des styles du document hôte). Je ne pense pas que ce soit encore pris en charge par de nombreux navigateurs cependant.

4voto

Peter Points 41

Non, chaque requête n'aurait pas besoin d'un aller-retour vers le serveur, si le contenu des modèles est constant, alors il peut être mis en cache et moins de données doivent être transférées. C'est la raison pour laquelle vous mettez les fichiers css et javascript dans des fichiers séparés.

4voto

greenoldman Points 4575

Une question similaire a été posée et c'est possible : Fichier HTML5 inclus

Réponse de Rafa :


Utilisez la balise object :

foo.inc devrait inclure du HTML valide.

Je l'ai testé sur Konqueror, Firefox et Chromium.

Si vous le trouvez utile (ce que je trouve), veuillez voter pour la réponse de Rafa (pas la mienne) car "ce n'est pas possible" se propage comme une maladie.

3voto

Goa Points 61

HTML5 est composé de 3 composants : HTML, CSS et JavaScript. Nous devons donc les utiliser tous pour tirer parti de HTML5.

Le code HTML externe peut être inclus dans un autre document html en utilisant javascript. La seule chose est que vous devez stocker le code externe dans un fichier .js. Voici un exemple de comment inclure un paragraphe html :

    Page Principale

            paragraph();

Contenu de include_html.js

function paragraph()
{
        document.write(" Ceci est un paragraphe HTML ");
}

2voto

Barry Kaye Points 5722

Chaque demande nécessiterait bien sûr un aller-retour vers le serveur - pouvez-vous imaginer les problèmes de bande passante que cela pourrait causer? Il y aurait 4 demandes juste pour votre extrait ci-dessus (la page originale + 3 inclusions) et ensuite bien sûr les problèmes de rendu du navigateur et ensuite les problèmes de JS locaux (c'est-à-dire à quel moment le DOM est-il chargé - avez-vous 4 DOM?).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X