Comment lier plusieurs documents html 5 ?

Résolu/Fermé
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022 - 3 janv. 2022 à 08:42
 Lansquenet - 4 janv. 2022 à 23:52
Bonjour a tous ! Je code une page html qui contiendra beaucoup d'images (une centaine je dirais) et je voudrais lier mon fichier index.html a un autre fichier ou je chargerais mes images pour pas que mon fichier index ne sois trop long, les deux fichiers sont bien dans le même dossier (j'utilise VS Code)
Quelqu'un aurait une solutions ?
merci
A voir également:

5 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
3 janv. 2022 à 08:54
Bonjour,

Quand tu parles de "lier", je pense que tu veux dire "inclure"
Le html n'est pas un langage de programmation...
Et donc, à part passer par un langage serveur ( comme du php) tu ne pourras pas.


0
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022
3 janv. 2022 à 08:55
on ne peut donc pas lier plusieurs fichier html comme on le ferait avec du CSS ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
3 janv. 2022 à 12:20
non.. pas sans un langage de programmation
0
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
3 janv. 2022 à 14:52
Comment je pourrais faire pour charger les images a part ducoup ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022
3 janv. 2022 à 15:01
En utilisant un langage de programmation...
Php ou JavaScript par exemple
0
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
3 janv. 2022 à 18:19
si je veux utiliser javascript il suffirais de placer l'image dans une variable et de lier le fichier .js au fichier .html ?
mais je suppose que on ne stock pas une image dans une variable comme on y stockerais une chaine de caractère....
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022
3 janv. 2022 à 20:12
Tu peux stocker le chemin vers l'image dans une variable JS
Voir même.. tu pourrais stocker tous les chemins de tes images dans un objet ou un array .... et faire une boucle (en javascript) pour générer les balises <img> dans ton fichier html
0
Salut,
oui et non.Tout comme pour afficher une image dans une page vous n'incluez pas le fichier dans le HTML
<img src="mon_image.jpg" alt="description image" />

mais indiquez l'adresse où se trouve l'image pour que celle ci soit affiché ce sera l'adresse du fichier à afficher qui est stocké dans une variable.

Il en est de même avec une base de données même s'il est possible de stocker un fichier dans une base de données il est nettement plus simple et performant de ne stocker que l'emplacement où celle ci se trouve. Ce principe de lier des éléments les uns aux autres par un texte qui amène à une ressource (le fichier image à son affichage dans une page HTML, le CSS pour une page HTML, le script d'un programme JavaScript à la page HTML, ...) s'appelle l'hypertexte.

La question principale est surtout pourquoi voulez vous afficher 100 images sur une page?
C'est une chose à éviter absolument pour de nombreuses raisons.

Règles graphiques et de mises en pages:
_ L’œil et le cerveau humain ayant ses limites il est complétement inutile de présenter de nombreuses images en même temps puisque celles ci ne peuvent pas toutes être consultés en même temps. Mettez simplement un rectangle avec 4 images dessus et vous verrez que vous ne pouvez pas humainement regarder plusieurs images à la fois et avoir un sens.

C'est la même chose si le contenu de votre page est trop volumineux(images ou textes) ça devient fastidieux de faire défiler une page et il est nettement plus efficace de faire plusieurs pages que de forcer l'utilisateur à devoir faire des efforts pour voir des contenus successifs qui seront mentalement plus durs à classer.
Le résultat d'une telle quantité est logiquement que rien n'est mis en valeur et que vous perdez le message principal et/ou qu'aucune n'est mise en valeur et donne l'impression non de profusion mais de manque d'ordre et de cohérence car aucun message/image particulière n'est identifiable directement (par le cerveau en une fraction de seconde).
La règle d'or de n'importe quelle publication est la clarté et un grand nombre d'éléments sans qu'un petit nombre soit mis en avant(1 ou 2 voire 3) est simplement contre-productif puisque aucun message particulier ne se dégagera immédiatement et force le cerveau à faire des efforts pour trouver un sens ou message à ce qu'il voit donc n'incite pas à s'intéresser à la publication.
Voir aussi ce qu'est l'ergonomie Web.


Limitation/impact technique:

_C'est peut-être la motivation de votre question mais afficher une page signifie que les contenus à afficher (par lien hypertextes) doivent être chargés(téléchargés) par l'ordinateur de l'utilisateur. Une page qui contient de nombreux fichiers volumineux(poids des fichiers) à charger va donc logiquement être longue à charger. Depuis le début du WWW où les vitesses de connexions (donc de transfert des fichiers) étaient moindre il a toujours été question de faire attention qu'une page charge rapidement(donc avec des contenus par page) pas trop volumineux pour éviter que l'utilisateur n'ai à attendre pour que la page s'affiche, ce qui pour la majorité des utilisateurs provoquera simplement de ne pas attendre et d'aller voir ailleurs ou s'il reste pour consulter la page une fois chargé implique qu'il ne reviendra probablement pas sur le site et trouvera le site mal fait (puisqu'il faut attendre et que les autres sites sont immédiats) donc inconsciemment le contenu proposé/présenté sera jugé mauvais puisque le site est mal fait.

Donc afficher un grand nombre de photos simultanément sur une page est totalement contreproductif et à éviter. Par grand nombre je parle de 10 ou plus en bonne qualité ou 2 ou 3 en haute qualité(= fichier plus lourd).


Les solutions?
J'ai déjà donné la meilleure solution, c'est de ne pas afficher un grand nombre d'images par page. Donc de fractionner en différentes pages.
L'informatique permet par la programmation un certain nombre d'automatisation.
Ainsi inclure un élément de type diaporama/visionneuse peut être judicieux dans ce cas.
Plutôt que d'afficher 10 images à la suite faire défiler dans un cadre les images rend chaque image unique(un cerveau/vision humaine ne pouvant pas se concentrer sur plusieurs images à la fois) qui seront consécutives est nettement plus efficace si la solution de fractionner la page en plusieurs ne vous satisfait pas.
Mais bien sûr faire défiler beaucoup plus d'images revient au même problème qu'évoqué plus haut: aucune n'est mise en valeur et ne se démarque, il est fastidieux et ennuyeux de faire défiler (ou regarder défiler) un nombre important d'image et aucune n'est mise en valeur, les images en début de défilement seront les seules à vraiment attirer l'attention.

Un autre type d'automatisation existe mais nécessite des pages dynamiques. Cela veut dire que les fichiers des images(ou plutôt l'adresse de leur emplacement *URL) soit stocké par une base de donnée et qu'un programme(ex: PHP) puisse générer l'affichage d'une façon qui varie(possibilité de classement, tri, organisation diverses) qui permet à l'utilisateur d'accéder clairement à l'information ou les informations(ou image(s)) que veut voir l'utilisateur.
Lier des pages ensemble s'appelle simplement mettre un lien qui permet de se rendre d'une page sur l'autre
<a href="pagesuivante.html">aller à la page suivante</a>


Bien sûr on peut (et doit) combiner les différentes techniques possibles.
Ainsi rien n'empêche d'avoir un programme PHP s'appuyant sur une base de données qui va afficher des images dans une visionneuse faite en JavaScript(et oui tout est lié ensemble, les technologies sont complémentaires connexes et restent différentes technologies avec chacune son rôle à jouer/utilité différente) et bien sûr si ça nécessite d'avoir plusieurs pages(dynamiques ou pas) il n'y a pas de raison de s'en priver.

Important:
Les sites Internet nécessitent d'être des pages dynamiques:
les contenus ou une partie de ce qui est affiché(textes, images, ...) sont fournis par la base de données au programme qui va générer (automatisation) l'affichage et permet l'inclusion de critères qui peuvent varier dans le temps.
Concrètement cela veut dire que sans ce principe lorsque vous devez changer, ajouter ou modifier des images(ou autres contenus) si vous avez un programme qui automatise le traitement des contenus il suffit donc de changer le contenu de la base de données pour cela. Sans ça vous devez refaire le travail de mise en page, présentation et écriture de la page à chaque changement. Ce qui est au final une perte de temps monstrueuse car oblige à faire le travail à chaque fois.
L'automatisation possible est la seule solution valable si vous voulez un site durable qui puisse être géré facilement plutôt que d'avoir à réécrire HTML CSS et éventuellement JavaScript à chaque fois que vous voulez le moindre changement. Plus vous avez de contenus, plus régulièrement vous avez à modifier ces contenus plus le travail à fournir prendra du temps sans des pages dynamiques.
Et si vous pensez que votre site n'a pas à changer avec le temps vous vous trompez et ne pensez pas à moyen ou long terme. De tels cas existent, ce sont les site statiques. Ils peuvent suffire mais restent des sites de moindre qualité et valeur ajouté pour les utilisateurs et ont donc moins de chance de présenter un intérêt par rapport aux autres qui fournissent mieux et des contenus qui peuvent variés.
0
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022
3 janv. 2022 à 19:51
Merci pour votre réponse, mais en réalité je souhaiterais faire un jeu en 2D, un Visual Novel (un jeu narratif où le joueur choisis entre plusieurs options représentés par des boutons qui affichera une image différente et changera l'histoire en fonction des choix du joueur) accessible depuis internet, et j'aurais peut être dus commencer par là.... c'est pour cela que je souhaite charger les images a part du code de base car il faut y stocker toute les scènes possibles... pour les afficher au bon moment (dans un canvas de javascript pour facilité l'interaction)
0
Ok,
ça n'est donc pas 100 images à charger sur une page...
L'ensemble de ce que j'ai dit reste vrai et applicable à votre projet.
J'ai oublié - le message était déjà long - de parler des possibilités de préchargement mais aussi parce que dans le cas de 100 images aucune solution n'est adapté: il ne faut simplement pas charger 100 images.

Quand à faire un jeu(ou un site) il faut faire plus que souhaiter mais travailler/apprendre à le faire.
Ce que vous voulez faire est relativement simple( je suppose que CANVAS c'est pour rajouter de l'animation et des effets? parce que pour afficher des images il y a la balise IMG qui suffit largmement) et si vous voulez le faire de la mauvaise façon vous n'avez pas besoin de programmation mais bien de savoir comment fonctionne un LIEN vers une autre page.

<img src="imagedebut.jpg" alt="début du jeu" />
<p>Voulez vous commencer?</p>
<a href="pagedebutdujeu.html">oui</a>
<a href="autres.html">non</a>



Bien sûr avec la programmation on peut faire mieux et par exemple modifier texte et images ainsi que gérer l'interaction(programmation événementielle),
ceci change un texte quand non clique:
https://www.w3schools.com/jsref/prop_html_innerhtml.asp

Comme JavaScript peut manipuler HTML et CSS il peut donc manipuler quel fichier est chargé par une image(balise img en HTML) de la même manière ainsi que n'importe quel élément d'une page.

Je vous suggère donc d'apprendre(travailler quoi ;) ) et de voir déjà ce qu'en quelques mois de cours vous arrivez à faire. Ca vous évitera de vous poser des questions qui n'ont pas lieu d'être.

C'est très basique ce que vous voulez donc facilement abordable(voir mon exemple en pur HTML). Vous avez aussi des outils dédiés à la création de jeu qui ont une autre approche(exemple: unity3D).


C'est bien souhaiter mais sans travail vous n'aurez rien. Vous devriez commencer par là histoire de vous confronter à la réalité plutôt que d'imaginer des choses qui n'ont pas lieu d'être et comme ça vous parlerez (ou aurez des questions) sur des sujets réels.

Si on change l'adresse d'une image avec JavaScript une seule image est chargée à la fois que vous le fassiez 100 fois ou mille. Si c'est lors d'un événement(en programmation) comme un clic sur un bouton(de là au choix interactif il n'y a qu'un pas) qui déclenche une fonction du programme qui va modifier l'image affichée l'image n'est téléchargée(download) que au moment du clic donc il n'y a pas à charger 100 images simultanément.
Après bien sûr il existe des techniques nettement plus avancées et des possibilités très large pour améliorer aussi bien ce qui est offert à l'utilisateur du programme que pour faciliter le développement et améliorer la qualité de celui ci; comme le préchargement d'image.
Mais bon avant d'aller vers des techniques plus avancées il faut passer par les trucs de bases, que vous n'avez pas.
0
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022 > Lansquenet
3 janv. 2022 à 20:29
Merci de la réponse, effectivement je ne suis pas très expérimenté en html/javascript c'est donc sur votre dernier paragraphe que je vais travailler ! encore merci pour vos réponses
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
THEGAMERGAMING54 Messages postés 28 Date d'inscription jeudi 1 juillet 2021 Statut Membre Dernière intervention 20 janvier 2022
Modifié le 4 janv. 2022 à 20:28
J'ai finalement trouver une solution a mon problème, je l'ai donc regarder d'un autre point de vue, au lieu de trouver comment lier deux pages html pour y stocker mes images, j'ai lier mon code html a un fichier .js dans lequel j'ai la liste des images.
j'ai utilisé pour cela
document.write("<img id=\"img1\" src=\"img/mon_image.png\">")

Merci encire a vous pour l'avoir aiguillé !
0
document.write est ABSOLUMENT à ÉVITER pour des raisons bien connues.

https://developer.mozilla.org/en-US/docs/Web/API/Document/write

Il faut bien sûr utiliser la création d'éléments avec la méthode createElement et inclure les éléments avec appendChild sinon ça va foirer le DOM (effacer tout le contenu de la page avant d'écrire le nouveau) ou éventuellement innerHTML ou innerText selon que l'on doit ajouter/modifier un élément de la page ou du texte de la page.

Vous n'avez toujours pas compris que pour s'afficher une page HTML doit être lue par un navigateur...donc les pages HTML sont indépendante (2 pages affichée = 2 onglets du navigateur = 2 pages différentes).
0