Problème pour affichage de l'heure [AJAX] - HTML/CSS - Programmation
Marsh Posté le 02-11-2007 à 14:53:36
Aïe! Ca pique les yeux tout ça !
Bon, commençons avec ça :
tu sais que ton script php, là, il tourne en boucle sans jamais renvoyer de résultat ! Jolie boucle infinie ceci-dit
Un conseil (le prend pas mal hein ! C'est pour t'aider) : revoit donc tes bases avant de vouloir faire de l'ajax !
Marsh Posté le 02-11-2007 à 14:57:09
kao98 a écrit : Aïe! Ca pique les yeux tout ça ! |
Arf, en effet, j'avais pas vu cette erreur de débutant
En fait, je ne pensais pas que l'erreur venait du PHP, donc je n'avais pas regardé de ce côté-là.
Maintenant, ça fonctionne sous FF et IE6, mais pas sous IE7 : est-ce normal ?
Marsh Posté le 02-11-2007 à 14:59:22
Si j'ai bien compris, tu veux afficher l'heure en temps réelle en la demandant à chaque fois au serveur ?
Heu, c'est un truc à ne pas faire ça ! Ca va tuer les perfs du serveur, la bande passante, ... Pis même, d'où t'es donc venue cette idée ?
Marsh Posté le 02-11-2007 à 15:04:15
kao98 a écrit : Si j'ai bien compris, tu veux afficher l'heure en temps réelle en la demandant à chaque fois au serveur ? Heu, c'est un truc à ne pas faire ça ! Ca va tuer les perfs du serveur, la bande passante, ... Pis même, d'où t'es donc venue cette idée ? |
Mon sites est un élevage virtuel sur lequel se déroulent des enchères : je voudrais que l'heure affichée soit toujours identique à celle du serveur pour que les membres puissent enchérir facilement. Pour ce qui est de la bande passante et des perfs du serveur, je ne pense pas qu'un simple "echo" puisse vraiment les plomber, non ?
PS: le serveur est un opteron 180 avec 1Go de RAM.
Marsh Posté le 02-11-2007 à 15:09:42
C'est pas ce que doit renvoyer le serveur qui va être lourd, c'est simplement le nombre de requête HTTP à gérer !
Marsh Posté le 02-11-2007 à 15:12:35
kao98 a écrit : C'est pas ce que doit renvoyer le serveur qui va être lourd, c'est simplement le nombre de requête HTTP à gérer ! |
Erf, en effet, surtout multiplié par le nombre de connectés, ça peut faire mal
Marsh Posté le 02-11-2007 à 15:36:05
Exactement !
Marsh Posté le 02-11-2007 à 15:46:02
Si tu veux diminuer la charge du serveur et garder une synchro correcte, tu peux faire comme ca :
Dans le code javascript, dans la fonction majHorloge, tu mets un timer d'une seconde qui relance la fonction (avec setTimeout ou quelquechose comme ca, je l'ai plus en tete). Comme ca, ta fonction ne se lance "que" toutes les secondes.
Ensuite, dans ta fonction tu rajoutes un compteur, qui s'incrémente à chaque exécution de la fonction. suivant la valeur du compteur, tu fais ca :
Si compteur < 60 : tu rajoutes 1 seconde à l'heure sans faire de requete au serveur
Si compteur = 60 : tu fais une requete au serveur, tu mets a jour avec l'heure du serveur, et tu remets le compteur à zéro.
Comme ca tu limites les requêtes, et tu restes à peu près synchronisé
PS : j'ai pas mis de code, mais l'idée y est Il y a peut être un ou deux ajustements à faire, mais en gros t'as les grandes lignes du fonctionnement.
Marsh Posté le 02-11-2007 à 16:01:58
astryad a écrit : Si tu veux diminuer la charge du serveur et garder une synchro correcte, tu peux faire comme ca : |
Pour ce qui de lancer une requête que toutes les secondes, c'est déjà le cas avec mon sleep(1) dans le code PHP
Par contre, mélanger l'incrémentation et la MAJ AJAX, ça peut être une bonne idée
Marsh Posté le 02-11-2007 à 16:41:08
La différence entre le sleep(1) et le timeout en javascript, c'est que dans un cas, c'est ton serveur qui bouffe une seconde à attendre, et dans l'autre c'est le client qui attend une seconde avant de lancer la requête
Je pense qu'il est préférable de faire patienter le client plutôt que ton serveur fasse des sleep à longueur de temps (surtout qu'il est possible que le sleep consomme du temps processeur).
Marsh Posté le 02-11-2007 à 13:42:37
Bonjour à tous,
Je débute en AJAX (c'est mon premier script) et j'ai un souci pour afficher l'heure sur mon site.
Voici mes scripts :
browser.js qui permet de détecter le navigateur et de faire des requêtes AJAX en fonction de celui-ci.
Le script lui-même :
Et enfin, le fichier heure.php
Au final, le div reste vide et j'ai une erreur d'affichée dans la console :
Savez-vous d'où le problème peut venir ?
Merci d'avance
Message édité par nero27 le 02-11-2007 à 14:03:17