question sur html/javascript [RESOLU]

naskaanaskaa Membre
juin 2010 modifié dans Langages Web & serveurs #1
salut,
Dans une architecture client/serveur. Quand le client (navigateur web) demande une page html par une requete http, le serveur lui repond par le fichier html. Admettons dans ce fichier html, il y a du code javascript qui s'execute quand on clique sur un bouton dans la page html et qui fait qu'un titre present sur la page change de couleur.
[glow=red,2,300]Je veux savoir ce qui se passe au moment du clique svp ?[/glow]
Le navigateur va envoyer une nouvelle fois une requete http pour actualiser la page. Mais que se passe-t-il concretement est-ce que l'ancien fichier html est perdu et on recharge un nouveau avec la modification a l'interieur du html ou est-ce que la fichier html reste coté client et la réponse de la requete contient une variable qui va etre traiter par le code javascript pour modifier la couleur ?


merci

Réponses

  • AliGatorAliGator Membre, Modérateur
    14:22 modifié #2
    Javascript est un langage interprété côté client.
    L'exécution d'un code javascript par exemple pour changer la couleur d'un titre ne fait en aucun cas une requête serveur.

    Bien sûr, avec le "Web 2.0" et l'utilisation d'AJAX, le javascript peut servir à  faire des requêtes (vers une autres URL qui n'est pas l'URL de la page, mais une URL par exemple vers un WebService), requêtes AJAX qui vont lui retourner une réponse (par exemple lui retourner du JSON ou du texte ou autre) et se servir de cette réponse pour mettre à  jour la page.

    Mais à  la base, javascript est interprété côté client de toute façon.
  • sekaijinsekaijin Membre
    14:22 modifié #3
    le contenu de la question me laisse à  penser qu'il y a là  une grand confusion dans le fonctionnement des WebApp

    fonctionnement de base Http Html
    le client demande une page le serveur envoie le Html correspondant le client l'affiche. l'utilisateur clique sur un lien pour change la couleur le client (navigateur) demande au serveur la nouvelle page le serveur lui renvoie le html avec le titre en couleur et le client l'affiche
    à  ce moment là  tout ce qui concernait la page précédente est perdu variable javascript fonctions DOM (les objets qui permettent au navigateur d'afficher la page)

    fonctionnement Http Html Javascript
    le client demande une page le serveur envoie le Html correspondant le client l'affiche. le client clique sur un bouton qui active une fonction javascript celle-ci récupère dans le DOM l'objet titre et lui change sa couleur, le navigateur affiche alors la nouvelle couleur.
    il n'y a pas de demande au serveur et pas d'actualisation de la page

    fonctionnement Http Html Javascript XMLHttpRequest
    (Javascript + XMLHttpRequest = Ajax )
    le client demande une page le serveur envoie le Html correspondant le client l'affiche. le client clique sur un bouton qui active une fonction javascript celle-ci
    utilise XMLHttpRequest et demande au serveur un nouveau titre (en couleur)
    le serveur répond l'objet XMLHttpRequest appelle une fonction javascript qui remplace l'ancien titre par le nouveau
    seul les objets dépendants de l'objet du DOM sont détruits et remplacer

    en résumé
    requête simple on perd tout
    sans requête on ne perd rien
    avec requête ajax on ne perd que ce qu'on détruit explicitement dans ses fonctions js

    A+JYT
  • naskaanaskaa Membre
    juin 2010 modifié #4
    Merci a vous deux ! effectivement je n'arrivais pas à  trouver un article qui explique bien ce qui se passe. Maintenant je comprends très bien.

    Cependant J'ai une question sur le cas 3 : fonctionnement Http Html Javascript XMLHttpRequest
    Lorsque le javascript insère le nouveau titre en couleur, la page html elle est reconstruire coté client et le navigateur la recharge  mais comment il sait qu'il doit la recharger est-ce a cause de l'evenement du click ?

  • AliGatorAliGator Membre, Modérateur
    14:22 modifié #5
    Non dans le cas 3 il ne la recharge pas.
  • naskaanaskaa Membre
    14:22 modifié #6
    merci ! ca m'aide énormément
Connectez-vous ou Inscrivez-vous pour répondre.