GNT sans publicité, site mobile, fonctionnalitées exclusives...

divers problemes Ajax

Le
Thief13
Bonjour à tous,

Je vien a vous, car j'ai décidé d'utiliser Ajaxsur 1 des projets sur
lesquelles je travaille.

Le probleme, c'est qu'avants de commencer je n'avais aucune notion de
JavaScript.

Pour me faciliter le travail, j'ai donc fait appel à la librairie
Mootools pour me décharger un peut.

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

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.

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. 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 ? 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.

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 ?

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 ?

Je vous remerci beaucoup par avance, car je galaire depuis un moment sur
tout ces problemes
Lire les 19 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ASM
Le #750714
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.

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/hikksn...oadJSFile/

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.orang...quest/v_1/
à essayer avec et sans JS.

Ou bien :
http://stephane.moriaux.perso.orang...quest/v_2/
qui propose menu JS et menu HTML
et liens vers sources causant de XHR :
http://stephane.moriaux.perso.orang...v_2/?liens

Thief13
Le #751672

Je ne sais si une librairie est vraiment "utile" pour ne faire que du
simple request ... ? !

Outre le fait que XHR est appelé diféremment entre IE et Firefox,

Mootools ne me sert pas qu'a ça

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>

Haaa, les bonne vielle mauvaise partique genre onclick dans la balise

html ont la peau dure à ce que je voi...

Et puis ça n'a rien a voir avec ce que je dit, merci quand meme pour
l'effort...

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)


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)


Et bin non, c'est bien ce que je dit, rien à voir : c'est le meme
fichier qui genere soit la page, soit juste le contenu qui nous
interresse en fonction du contenu du paramattre ajax, qui ne coute pas
vraiment bien chere à ajouter dans mon URL...
Pour moi celà n'est pas un probleme.

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.


en effet, mais heureusement que quelquepart une personne compétante m'a
recommendé ça :
http://digitarald.de/project/historymanager/


Le visiteur n'a qu'à désactiver son JS ! Non mais !


Merci pour cette réflexion intelligente. Et comment fait un aveugle qui
navigue avec un lecteur de texte qui ne marche pas avec javascript ?

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 ?).


ha parce que pour toi, l'interret et la particularité de l'Ajax, c'est
d'être privé de l'historique de navigation ?

Enfin, pour ceux qui ne considèrent pas ça comme un avantage,
re : http://digitarald.de/project/historymanager/

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)



tout simplement parce que c'est su Javascript qui ne concerne que le
contenu en cours. Heureusement une personne avisé m'a recommendé l'usage
de la commande eval() qui résous ce probleme là.


Pierre Goiffon
Le #754542
Thief13 wrote:
<a href="?page2" onclick="return ajax(this);">page 2</a>

Haaa, les bonne vielle mauvaise partique genre onclick dans la balise

html ont la peau dure à ce que je voi...
(...)

Est il possible d'écrire dans
l'historique en javascript ?
Je ne pense pas.



en effet, mais heureusement que quelquepart une personne compétante m'a
recommendé ça :
(...)

Heureusement une personne avisé m'a recommendé l'usage
de la commande eval() qui résous ce probleme là.


ASM est un contributeur très prolifique de ce forum, il ne cherchait
qu'à vous aider, votre réponse est en tout point détestable ! On ne peut
pas deviner à votre place vos attentes, et si une réponse ne vous
convient pas ce n'est pas pour cela qu'elle n'est pas pertinente ou
inutile aux autres. Merci de revoir votre attitude.



Delf
Le #754258
Thief13 avait écrit le 28/08/2007 :

Haaa, les bonne vielle mauvaise partique genre onclick dans la balise
html ont la peau dure à ce que je voi...


Ceci n'est pas ironique : l'attribut onclick n'est pas recommandé ?
Pourquoi. Je l'utilise assez fréquemment...

tout simplement parce que c'est su Javascript qui ne concerne que le
contenu en cours. Heureusement une personne avisé m'a recommendé l'usage
de la commande eval() qui résous ce probleme là.


J'crois que eval() n'est pas près recommandée par contre, à confirmer.
Merci.

--
Delf

loiseauthierry
Le #754257
Delf
J'crois que eval() n'est pas près recommandée par contre, à confirmer.


Je pense plutôt qu'il faut l'utiliser avec prudence :-)

Thierry
--
4 Calculs & Astronomie en Javascript : 3 " Il y a 10 sortes de personnes sur Terre : ceux qui connais-
2 sent le système binaire et ceux qui ne le connaissent pas "
1....'....12.....'....24.....'....36.....'....48.....'....60.....'....72

Publicité
Suivre les réponses
Poster une réponse
Anonyme