En réponse à Thief13 qui écrivit, en date du : 12/08/07 22:02, le
message suivant :
> Bonjour à tous,
>
> Je vien a vous, car j'ai décidé d'utiliser Ajaxsur 1 des projets sur
> lesquelles je travaille.
>
> Pour me faciliter le travail, j'ai donc fait appel à la librairie
> Mootools pour me décharger un peut.
Je ne sais si une librairie est vraiment "utile" pour ne faire que du
simple request ... ? !
> mon organistion est la suivante : le site fonctionne avec et sans ajax.
> Toute les page sont généré avec le fichier page.php
>
> le get id donne la page qui nous interresse, et le get ajax détermine si
> la page est appelé en ajax ou non.
>
> se qui fait que sans javascript la page est appellé comme ça :
> page.php?id=1&ajax=0
On peut bien se passer du double envoi (
JS !
JS) c'est au navigateur de
s'en soucier :
<a href="?page2" onclick="return ajax(this);">page 2</a>
Si pas de
JS le lien est envoyé normalement (le fichier php est lu)
Si
JS l'appel Ajax est lancé et le lien HTML annulé (fichier php zappé)
(l'Ajax peut faire appel à un autre fichier php spécifique)
> et avec javascript comme ça :
> page.php?id=1&ajax=1
> en fonction de $_GET['ajax'], page.php retourne la totalité de la page,
> ou ne retourne que le contenu de la div du contenu.
Il suffit de n'avoir un php "intelligent" qu'au niveau du div
d'insertion, si le
JS est activé et la requête reconnue le fichier php
ne sera pas lu et seul le fichier à inclure sera appelé.
(la fonction de requête peut lancer un fichier php différent de celui
déjà affiché (et principal) qui ira chercher le bon fichier requis)
> Mes problemes sont les suivants :
>
> Quand le client navigue sur le site en ajax, si jamais il veut revenir
> en arriere avec les fleches du navigateurs, celles ci le redirige vers
> la dernière requette non ajax.
? vraiment ?
Oui, en effet.
> Ce qui fait que la navigation dans le
> site est bien moin ergonomique à mon sens. Est il possible d'écrire dans
> l'historique en javascript ?
Je ne pense pas.
> le site fonctionnant a la foit avec et sans
> ajax, celà permetrait à la personne de revenir en arriere, meme en
> chargent toute la page, mais au moin, correctement.
Le visiteur n'a qu'à désactiver son
JS ! Non mais !
> Dans la meme vene, avec les requette ajax, l'url n'est pas changé,
> résultat, si la personne qui navigue veut faire un copier coller de
> l'url de la page qui l'interresse, celà ne la redirigera pas du tout sur
> la ressource qui l'interresse pour peut qu'elle ai navigué un peut grace
> à Ajax avant... Et de plus, si elle actualise, elle ne fera
> qu'actualiser la page avant les requette ajax. est il possible de palier
> à ça aussi ?
Non.
Du moins si, ce doit être +/- possible mais cela reviendrait à faire
naviguer via
JS comme si on était en mode non-
JS (alors ... pourquoi
choisir Ajax ?).
> autre probleme : certaines page ont besoin d'appeler un javascript
> spécifique, que je ne peut inclure systématiquement. Cepandant, quand le
> javascript a été inclut en Ajax, il ne fonctionne pas... Y aurait il une
> solution à ça aussi ?
Rien compris ...
Pourquoi ne pas pouvoir inclure ce(s)
JS spécifique(s) à la page
principale PHP ?
(ils ne sont chargés qu'une foi)
Pour répondre à la question, le
JS chargé via Ajax ne fonctionne pas ...
il n'y a qu'à le faire charger en
JS "normal" en prévoyant la chose dans
le lien de requête.
<a href="?p12" onclick="chargeJS('truc.
js') return ajax(this);">
page 12</a>
function chargeJS(fichier) {
var scrpt = document.createElement('SCRIPT');
scrpt.type="text/javascript";
scrpt.src=fichier;
document.getElementsByTagName('HEAD')[0].appendChild(scrpt);
}
Pas certain que ça fonctionne avec IE ...
Voir tableau récap de différentes méthodes suivant les navigateurs :
http://members.aol.com/_ht_a/hikksnotathome/loadJSFile/
> Je vous remerci beaucoup par avance, car je galaire depuis un moment sur
> tout ces problemes...
Voir ma tentative navigable avec ET sans
JS (via SSI) :
http://stephane.moriaux.perso.orange...tpRequest/v_1/
à essayer avec et sans
JS.
Ou bien :
http://stephane.moriaux.perso.orange...tpRequest/v_2/
qui propose menu
JS et menu HTML
et liens vers sources causant de XHR :
http://stephane.moriaux.perso.orange...est/v_2/?liens