| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 19 Sep 2005 23:38 Sujet du message: AJAX à l'aide d'une image! |
|
|
Je viens de mettre au point une technique pour faire du AJAX en utilisant uniquement du javascript et une image.
Pas de frame, iframe, java, flash ou XMLHttpRequest! Seulement une image!
Plus de détails dans le message qui suit... Mais il est long, je vous avertis!
( Pour les pressés, qui veulent voir le code en action: http://zingzoom.com/ajax/ajax_with_image_fr.php )
(deuxième note: mes deux exemples peuvent avoir l'air simple... De faire afficher "Hello World!" dans un input ce n'est pas compliqué en javascript. Mais ici, c'est bel et bien le serveur qui envoit "Hello World!" comme réponse... Et uniquement en utilisant une image! Demain je vais faire un exemple d'un traitement qui ne pourrait pas se faire du côté client, pour que la communication client-serveur soit plus évidente)
(troisième exemple en ligne!)
mise à jour: J'ai développé une nouvelle technique qui utilise une feuille de style pour effectuer la communication entre le client et le serveur...
mise à jour 2: Maintenant avec un .js ...
Dernière édition par OgreGras le 02 Oct 2005 17:50; édité 16 fois |
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 19 Sep 2005 23:38 Sujet du message: |
|
|
On sait que le AJAX, qui consiste en une communication client-serveur sans rafraichir la page au complet, utilise principalement l'objet XMLHttpRequest.
Par contre, de plus anciennes techniques se servent de frames, iframes ou d'applets Java pour parvenir au même résultat. Mais je n'ai encore jamais entendu parlé de quelqu'un s'aventurant dans la communication client-serveur à l'aide d'une image uniquement!
Je ne suis probablement pas le premier à en avoir eu l'idée mais je ne suis jamais tombé sur un article portant sur la question.
Il faut dire que ce n'est pas nécessairement très utile et performant comme technique.. Quoique ma version "avec cookie" pourrais selon moi être améliorée et être utilisé en production.
Car ma technique se divise en deux parties: pour les clients avec cookies et pour les clients sans cookies.
-----
Un des plus vieux script javascript de l'Internet est celui du "rollover", qui permet de changer dynamiquement une image lors de passage de la souris. Cette création dynamique d'une image comporte nécessairement une nouvelle connexion du client vers le serveur où se trouve l'image. Certains se servent déjà de ce fait pour loger certaines informations sur le serveur. Il s'agit d'appeler un script serveur (PHP dans mon cas) qui fera certains traitements, logera l'information voulue et finalement génèrera une image à afficher.
| Code: |
<img src="traitement.php?parametre=123" />
|
C'est exactement ça que je fais dans mon exemple de génération dynamique d'avatar.
Par contre, pour parler d'une véritable connexion client-serveur, il ne faut pas seulement que le client puisse envoyer des informations au serveur, il faut qu'il puisse en recevoir en retour de ce dernier! Je me suis demandé si cela serait possible à l'aide d'images uniquement...
Je n'ai appris qu'assez récemment qu'il était possible d'envoyer des headers de cookies en même temps qu'une image générée dynamiquement. Ainsi, il est possible de retourner de l'information à un client demandant une nouvelle image en lui retournant cette information dans un cookie!
Cette première technique fonctionne très bien et je dirais même que les performances sont acceptables. Mon script dans ce cas serait à améliorer par contre, il ne gère pour l'instant pas les limites de taille des cookies.
Donc, en résumé, la première technique consiste à faire en sorte que le client demande au serveur de lui générer une nouvelle image, lui passe des paramètres en même temps dans l'URL, et le serveur retourne sa réponse dans un cookie en même temps que l'image. Ça fonctionne très bien.
J'ai décidé d'aller plus loin et de voir si il serait possible pour le serveur de retourner de l'information au client, si ce dernier n'a pas ses cookies d'activés!...
L'objet "image" en html ne présente pas énormément de propriétés et donc les possibilités pour interagir avec lui sont limitées ... mais elles ne sont pas nulles!
Lors de la création d'une nouvelle image en javascript:
| Code: |
uneImage = new Image() ;
|
Si on ne spécifie PAS de width et height, ces valeurs seront changées après la réception de l'image dynamiquement générée par le serveur! Et qui dit "valeurs modifiées par le serveur" dit "façon de communiquer de l'information"!
J'ai donc mis en place un processus qui va comme suit:
- Le client demande au serveur une nouvelle image en lui passant la requête à effectuer. Admettons que la requête du client est "faire une addition" et que les paramètres sont "100" et "3".
Quelque chose comme:
| Code: |
m_myImage = new Image() ;
m_myImage.src = "image.php?method=Add&val1=100&val2=3" ;
|
Le serveur trouve la réponse à la requête, 103, et met cette information dans un fichier qui sera lié à cette requête précise.
Le serveur retourne les deux premiers caractères de la réponse, "10", en convertissant chacun de ces caractères en sa valeur ascii (ici 1 = "49" et 0 = "48") et en générant une image de dimension 49 X 48!
Le client boucle jusqu'à ce qu'il soit assuré que l'image est entièrement chargée (en utilisant une autre propriété des images en javascript: complete) et lis ses dimensions.
Le client retransforme ces dimensions ("49" et "48") en caractères ("1" et "0") et commence à batir la réponse du serveur: "10".
Le client demande au serveur les prochains caractères de la réponse en demandant encore une nouvelle image et cette fois çi en passant comme information qu'il est rendu au troisième caractère de la réponse.
Le serveur recoit la nouvelle requête, ouvre le fichier associé à cette requête, lit la réponse et voit qu'il ne reste qu'un caractère à envoyer: le "3" de "103". Il génère donc une image avec comme largeur la valeur ascii du dernier caractère et comme hauteur il va mettre "257" qui est un caractère spécial signifiant au client que la réponse est terminée.
Le client lit les dimensions de la nouvelle image, voit que la réponse est terminée et peut finalement afficher la réponse à sa requête!
Le code en action (voir la source de cette page pour la partie javascript du processus):
http://zingzoom.com/ajax/ajax_with_image_fr.php
Le fichier PHP:
http://zingzoom.com/ajax/image.txt
Les limitations de mon implémentation sont multiples. Plusieurs aspects seraient à améliorer! J'ai fait ça en une journée et c'est uniquement pour le plaisir car, encore une fois, je ne pense pas que cette technique puisse vraiment avoir des applications "dans la vraie vie".
- Une des limitations est que seuls les caractères standards, en dessous de 255 en valeur ascii, sont acceptés dans la réponse du serveur. Du moins dans la versions sans cookie.
- Mon code ne gère pas de multiples appels en même temps. C'est pour cette raisons que je désactive les boutons lorsque je lance une requête au serveur.
- Il faudrait probablement compresser les images générées par le serveur pour gagner du temps de transfert.
- Un éventuel conflit pourrait surgir entre deux clients s'ils ont le même IP et ont lancé leur requête exactement en même temps (très peu probable mais possible).
- Comme je l'ai dit plus haut, je ne gère pas la limite de taille des cookies.
- Il est posible qu'il y ait une demande importante de mémoire (un leak même?) car je n'utilise pas toujours la même image, je fais plusieurs "m_myImage = new Image() ;" et donc je crée plusieurs images qui vont potentiellement rester en mémoire (me semble avoir lu que IE avait un bogue avec ça...).
J'ai essayé d'utiliser toujours la même image mais pour une raison obscure, l'association à un nouveau ".src" n'était pas toujours immédiate ce qui entrainait que parfois les dimensions d'une image étaient utilisées plus qu'un fois dans mon traitement (en tout cas, cela entraînait une réponse erronée).
- Il faudrait ajouter un cronjob du côté serveur pour effacer certains fichiers de requêtes qui pourraient, potentiellement, ne pas l'avoir été.
- Il y a probablement des bugs dans mon code
Un point positif à cette méthode par contre c'est que, d'après moi, c'est la méthode "AJAX" la plus cross-browsers. Je suis pas mal sur qu'elle marcherait genre sur Netscape 3 ou du moins sur tout navigateur supportant "new Image()". Et même sans support de "new Image()", il pourrait être possible d'utiliser une image déjà créée, d'une manière standard en HTML,"<img", pour la communication avec le serveur. En fait il y a plein de trucs qui pourraient être essayés!
Ouf! Désolé pour ce long poste mais je voulais vraiment tout résumer mes découvertes! Il resterait probablement pas mal de choses à dire mais là je suis fatigué d'écrire!
S'il en a parmis vous qui ont déjà entendu parlé de développeurs ayant joué avec cette technique de communication par images, je serais prenneur pour des références!
Dernière édition par OgreGras le 23 Sep 2005 13:32; édité 2 fois |
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 20 Sep 2005 19:21 Sujet du message: |
|
|
Nouvel exemple en ligne...
Il retourne des réponses en anglais seulement par contre...
Si vous trouvez des bugs ou des fautes d'orthographe (dans la version française ou anglaise) merci de m'en faire part!
Dernière édition par OgreGras le 23 Sep 2005 13:33; édité 1 fois |
|
| Revenir en haut |
|
 |
BenoitXVII
Ce membre n'a pas encore rempli le
Inscrit le: 20 Avr 2005 Messages: 410
|
Posté le: 20 Sep 2005 22:02 Sujet du message: |
|
|
| OgreGras a écrit: |
Nouvel exemple en ligne...
Il retourne des réponses en anglais seulement par contre...
Si vous trouvez des bugs ou des fautes d'orthographe (dans la version française ou anglaise) merci de m'en faire part! |
utiliser un champ texte input me semble un peu differé de ajax ... si tu peux faire un exemple qui affiche le texte dans la page (un peu a la maniere du listener d'evenement de google map qui affiche a cote les longitudes et latitude du point),cela me semble plus proche du but recherché
|
|
| Revenir en haut |
|
 |
Bitten
Ce membre n'a pas encore rempli le
Inscrit le: 05 Oct 2004 Messages: 191
|
Posté le: 20 Sep 2005 23:27 Sujet du message: Interessant! |
|
|
Très cool ton truc!
| Citation: |
| Il faut dire que ce n'est pas nécessairement très utile et performant comme technique.. |
Ce sont les trucs pas utiles qui deviennent les meilleures inventions! Il m'est arrivé bien souvent de combiner 2 ou 3 trucs non utiles, et que cela crée un hack...
|
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 21 Sep 2005 9:57 Sujet du message: |
|
|
| BenoitXVII a écrit: |
utiliser un champ texte input me semble un peu differé de ajax ... si tu peux faire un exemple qui affiche le texte dans la page (un peu a la maniere du listener d'evenement de google map qui affiche a cote les longitudes et latitude du point),cela me semble plus proche du but recherché |
J'ai tenu compte de ton commentaire et ai amélioré mon exemple #3...
L'affaire c'est que je ne veux pas trop insister sur l'affichage du côté client, mais plutôt sur la technique de communication client-serveur à l'aide d'une image.
Cette technique a plusieurs inconvénients mais a aussi l'avantage, selon moi, d'avoir de bonnes chances d'être compatible avec de vieux navigateurs. Si je commence à trop jouer avec des gugusses comme ".innerHTML", pour faire un rendu à la google maps, bien ça vient de supprimer en partant ce potentiel avantage.
Mais bon, j'utilise déjà getElementById à profusion et je crois bien que de toute manière de vieux navigateurs ne supporteraient pas, alors pourquoi ne pas utiliser innerHTML tant qu'à ça? Si quelqu'un veut tenter l'expérience de cette technique avec de vieux navigateurs il n'aura qu'à changer un peu le code client!
| Bitten a écrit: |
Très cool ton truc!
| Citation: |
| Il faut dire que ce n'est pas nécessairement très utile et performant comme technique.. |
Ce sont les trucs pas utiles qui deviennent les meilleures inventions! Il m'est arrivé bien souvent de combiner 2 ou 3 trucs non utiles, et que cela crée un hack...  |
Dans le pire des cas c'est au moins trippant à développer!
|
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 21 Sep 2005 20:46 Sujet du message: |
|
|
À l'aide d'une feuille de style!
C'est la technique la plus performante des 3!
Me reste plus qu'à essayer avec un .js externe mais je ne pense pas que ça va marcher...
Dernière édition par OgreGras le 23 Sep 2005 13:33; édité 1 fois |
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 22 Sep 2005 14:56 Sujet du message: |
|
|
Voici un résumé de la manière dont fonctionne la technique avec feuille de style, pour ceux que ça pourrait intéresser.
L'appel au serveur est effectué en modifiant la localisation d'une feuille de style bidon, à l'aide de sa propriété "href":
| Code: |
maFeuilleDeStyle = document.getElementById('stylesheetforajax') ;
maFeuilleDeStyle.href = "stylesheet.php?method=Add&valone=100&valtwo=3" ;
|
Le serveur recoit la requête, trouve la réponse et insère celle-ci dans la propriété "background-image" d'un div caché. Il retourne la feuille de style générée dynamiquement contenant la réponse.
J'ai cherché un bout avant de trouver une propriété CSS qui me permettrait d'insérer la réponse du serveur car une certaine validation est effectué du côté client sur les valeurs des propriétés CSS. Par exemple de générer:
| Code: |
#divforajax
{
font-size: $reponseDuServeur ;
}
|
ne fonctionnerait pas car le navigateur valide que la valeur est bel et bien un nombre et ainsi il serait impossible de répondre "Hello World!" par exemple. Le navigateur ignore une valeur non valide.
La première propriété qui m'a semblé être une bonne candidate a été "font-family", je me suis dit qu'il y a avait tellement de polices de caractères possibles, le navigateur n'allait surement pas valider la valeur utilisée. Erreur! Ça fonctionnait dans Firefox, si je me rappelle bien, mais pas dans IE6 et Opera7 (les trois navigateurs avec lesquels je fais mes tests).
Il ne restait pas tant de candidats que ça. Faites le tour des propriétés CSS principales et vous allez voir que peu sont enclines à permettre une valeur comme "Hello World!" qui ne sera pas validé par le navigateur!
J'avais peur que "background-image" ne fonctionne pas car le navigateur pourrait valider l'existence de l'image et ignorer la valeur entrée si l'image n'était pas trouvée. Je me préparais donc à travailler mon script un peu plus et a lui faire générer une image au bon nom (ex: Hello+World!.jpg) pour que la validation du navigateur passe.
Mais finalement il semble que même si l'image n'existe pas, pratiquement toute valeur est acceptée pour cette propriété!
Il s'agit donc de générer une feuille de style qui ressemble à:
| Code: |
#divforajax
{
background-image: url(Hello+World!) ;
}
|
Du côté client maintenant il faut aller lire cette nouvelle valeur qui vient d'être appliquée à l'élément "divforajax", un div caché, pour obtenir la réponse du serveur.
Le problème c'est que d'accéder directement à la valeur d'un style d'un élément fonctionne uniquement pour les styles qui ont été attribués dans le code dès le départ. Les styles modifiés par une feuille de style externe ne sont pas retournés lorsqu'on y accède directement!! Ceci ne fonctionnait donc pas:
| Code: |
reponseServeur = document.getElementById("divforajax").style.backgroundImage ;
|
Ce code me retournait toujours "none", sauf si j'avais dès le départ attribué à ce div une image de background, mais de toute manière la nouvelle valeur, la réponse du serveur, n'était jamais trouvée.
Je suis alors tombé sur cet article qui explique le problème en détails. En résumé, il faut faire appel à une fonction spéciale pour aller lire le style d'un élément modifié par une feuille de style externe. La fonction à appeller est différente pour IE que pour les autres navigateurs (quoi de neuf?) mais, heureusement, l'article fournissait la solution marchant dans tous les cas. Il faut toutefois que le navigateur soit assez récent.
Bref, à l'aide de ce bout de script le client est en mesure de lire la réponse du serveur encodée dans la propriété "background-image" d'un div caché. Ne reste plus qu'à l'afficher à l'écran!
|
|
| Revenir en haut |
|
 |
chaps
Ce membre n'a pas encore rempli le
Inscrit le: 10 Mar 2004 Messages: 819
|
Posté le: 22 Sep 2005 15:47 Sujet du message: |
|
|
Étant donné que je suis encore dans mes balbutiement pour Php et Ajax je ne peu rien ajouter d'intéressant mais je vais quand même me mettre une note dans la bd de psssst pour pouvoir relire ce post "quand je serai plus grand"
Dernière édition par chaps le 30 Sep 2005 13:03; édité 1 fois |
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 22 Sep 2005 15:55 Sujet du message: |
|
|
| chaps a écrit: |
Étant donné que je suis encore dans mes balbutiement pour Php et Ajax je ne peu rien ajouter d'intéressant mais je vais quand même me mettre une note dans la bd de psssst pour pouvoir relire ce post "quand je serai plus grand"
ArelireEn2006
Ainsi j'ai juste besoin de rentrer " ArelireEn2006" dans l'outil de recherche et je vais trouver ce poste plus rapidement qu'avec Ajax ou Php. |
Tu utilises cela souvent? Je veux dire, tu vas te rappeller que c'est "ArelireEn2006", avec cette syntaxe précise là, que tu dois rechercher?
Moi dans mon code, quand je vais d'une ligne à une autre et que ces lignes sont éloignées, je laisse toujours un "jjj"... Un CTRL-F plus tard je suis revenu à la bonne place! Le pire c'est que je fais ça même dans certains éditeurs qui offrent un système de bookmarks plus élaboré!
|
|
| Revenir en haut |
|
 |
campem
Ce membre n'a pas encore rempli le
Inscrit le: 30 Avr 2004 Messages: 470 Localisation: Sault-au-Récollets / PSC
|
Posté le: 22 Sep 2005 16:09 Sujet du message: |
|
|
| OgreGras a écrit: |
| Moi dans mon code, quand je vais d'une ligne à une autre et que ces lignes sont éloignées, je laisse toujours un "jjj"... |
Tiens moi je laisse trainé des /***/ en début des lignes qui auront besoin d'être revisité, pourrait ne plus être utilisé, etc. Ça l'avantage de compiler sans problème.
|
|
| Revenir en haut |
|
 |
chaps
Ce membre n'a pas encore rempli le
Inscrit le: 10 Mar 2004 Messages: 819
|
Posté le: 22 Sep 2005 16:33 Sujet du message: |
|
|
Normalement j'utilise @todo et l'IDE que j'utilise les trouve pour moi. Avant j'utilisais "patate" sauf quand on vend le code source au client
Mais puisqu'il y a des fripons qui vont marquer mes mots dans des fils de discussion pas rapport, je vais écrire mes "bookmark" en gris à l'avenir.
|
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 29 Sep 2005 16:20 Sujet du message: |
|
|
Yeah!
Quelqu'un pointe dans un commentaire que la technique utilisant une image et un cookie avait déjà été utilisée...
Néanmoins la technique avec image, sans cookie, ainsi que celle avec CSS semblent toujours nouvelles jusqu'à preuve du contraire..
|
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 30 Sep 2005 12:40 Sujet du message: |
|
|
| Un autre article intéressant.. Supposément le premier à décrire la technique utilisant une image + un cookie.
|
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 02 Oct 2005 16:49 Sujet du message: |
|
|
| OgreGras a écrit: |
Me reste plus qu'à essayer avec un .js externe mais je ne pense pas que ça va marcher... |
Il ne faut jamais dire jamais on dirait...
http://zingzoom.com/ajax/ajax_with_js_fr.php
En fait je dois dire que je suis assez satisfait de cette nouvelle technique. C'est la seule des trois qui permet au serveur de renvoyer au client une réponse d'une longueur qui n'est pas limitée. Et, encore plus intéressant, le client n'a même pas à parser la réponse du serveur car cette réponse est déjà reçue en javascript! Cela signifie aussi que le serveur peut répondre des structures javascript complexes comme des arrays ou des objets!
Je ne pensais pas que ça fonctionnerait avec un .js parceque j'utilise Firefox comme navigateur principal et le premier test que j'ai fait avec celui-ci n'a pas marché:
| Code: |
<script type="text/javascript" src="vide.js" id="jsajax"></script>
<script>
js = document.getElementById("jsajax") ;
js.src = "js.php" ;
</script>
|
Firefox ne semblait pas vouloir changer le .src d'un .js existant.
Mais j'ai essayé avec IE et cela a fonctionné! Avec Opera aussi! Alors je me suis dis que j'allais creuser un peu pour voir si je n'arrivais pas à trouver un moyen de faire fonctionner Firefox également.
J'ai premièrement eu l'idée d'enlever le "src" du .js inclu dans la page, pour reproduire un peu le comportement de la technique avec image qui permet de lire les dimensions d'une image générée dynamiquement uniquement si celle-ci ne s'est pas vu attribuer de dimensions en premier lieu:
| Code: |
<script type="text/javascript" id="jsajax"></script>
<script>
js = document.getElementById("jsajax") ;
js.src = "js.php" ;
</script>
|
Cela a fonctionné! Mais à mon grand drame ça n'a fonctionné qu'une fois. Ce qui signifie qu'il est possible d'attribuer un ".src" à un .js qu'une fois seulement avec Firefox.
| Code: |
<script type="text/javascript" id="jsajax"></script>
<script>
js = document.getElementById("jsajax") ;
js.src = "js.php" ; // fonctionne
js.src = "js.php?t=2" ; // ne fontionne pas!
</script>
|
J'ai donc tenté une nouvelle approche: j'ai créé dynamiquement des nouveaux éléments "script", from scratch:
| Code: |
div = document.getElementById("divajax") ;
div.innerHTML = '<scr' + 'ipt type="text/javascript" id="jsajax2"></sc' + 'ript>' ;
js = document.getElementById("jsajax2") ;
js.src = "js.php" ;
|
Cela marche à tout coup avec Firefox! Ainsi il m'était possible de créer un nouvel élément "script" pour chaque communication avec le serveur.
Mais c'est IE qui a fait son difficile pour cette technique... Pour une raison que je ne comprends pas, il n'arrive pas à trouver le nouvel élément à la ligne: js = document.getElementById("jsajax2") ;
J'ai alors tenté une autre méthode pour créer des éléments dynamiquement:
| Code: |
divj = document.getElementById('divajax2');
var newEl = document.createElement('script');
newEl.setAttribute("src","js.php");
divj.appendChild(newEl);
|
Marche sur Firefox et sur IE!...
... mais pas sur Opera!
Alors j'ai arrêté de me casser la tête et, lors du chargement de la page, je teste les trois différentes techniques et je conserve celle à utiliser, celle qui fonctionne avec le navigateur courant!
|
|
| Revenir en haut |
|
 |
campem
Ce membre n'a pas encore rempli le
Inscrit le: 30 Avr 2004 Messages: 470 Localisation: Sault-au-Récollets / PSC
|
Posté le: 03 Oct 2005 13:32 Sujet du message: |
|
|
| OgreGras a écrit: |
| Alors j'ai arrêté de me casser la tête et, lors du chargement de la page, je teste les trois différentes techniques et je conserve celle à utiliser, celle qui fonctionne avec le navigateur courant! |
Tu devrais encapsuler tout ça dans un objet, genre JSRemoter. Qu'est-ce qui se passe avec le bouton back quand tu utilises cette technique?
|
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 03 Oct 2005 13:41 Sujet du message: |
|
|
| campem a écrit: |
Tu devrais encapsuler tout ça dans un objet, genre JSRemoter.
|
C'est sur que je pourrais développer une librairie qui serait plus facile à utiliser directement, qui présenterait une belle API, mais ce n'était pas vraiment ça mon but là... Je voulais seulement démontrer ces techniques, leur faisabilité. Je ne pense pas aller plus loin, j'ai d'autres choses à faire!
| campem a écrit: |
Qu'est-ce qui se passe avec le bouton back quand tu utilises cette technique? |
Aucune history n'est conservée. Il serait possible de changer ce comportement en modifiant le anchor de la page à chaque requête (par window.location) mais encore une fois ça c'est des tunings dans lesquels je ne pense pas embarquer..
|
|
| Revenir en haut |
|
 |
OgreGras
Inscrit le: 10 Fév 2004 Messages: 3086
|
Posté le: 03 Oct 2005 14:14 Sujet du message: |
|
|
| By the way, si ça tente à quelqu'un de développer une librairie à partir de cette technique là, ne vous gênez pas... Ça va me faire plaisir de mettre un lien vers celle-ci sur mon site.
|
|
| Revenir en haut |
|
 |
|