Discussion: divers problemes Ajax
Afficher un message
Vieux 28/08/2007, 20h26   #7
Laurent vilday
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: divers problemes Ajax

Thief13 a écrit :
> ASM a écrit :
>> 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...


Non, rien à voir. Juste un exemple rapide du concept énoncé. C'est tout.

Et puis "onclick" n'est pas banni, selon la DTD utilisée il est tout à
fait acceptable. Ou alors, peut être que tu fais du XHTML strict !!! Si
tel est le cas, n'essayes pas de faire geek, reviens dans la réalité et
retournes sur du bon vieux HTML4.01. XHTML est mort né, il ne faut pas
l'utiliser.

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


Ben euh Stéphane te signalais juste comme ça en passant que ça semble
bizarre d'appeler une page par file.php?id=1&ajax=0 ou
file.php?id=1&ajax=1 selon le type de demande. Le ajax=0 semble
superflu. L'exemple onclick n'était là que pour te faire pointer du
doigt cette subtilité. Tu le prends mal, tant pis.

>> (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


Et alors ? Suis en bonté ce soir : url_rewrite peut-être ?

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


Et bien si ce n'est pas un problème, tout va bien. On en reparlera dès
qu'il te faudra ajouter ton paramètre GET à une requête POST.

>>> 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 sous entendu ne me plait guère ici !!!

D'autant que Stéphane à raison :

1) NON il n'est pas possible d'écrire dans l'historique en javascript

2) la soit disant personne compétente ne fait que recommander
l'utilisation d'une énième librairie qui manipule bêtement la propriété
"hash" de l'objet "top.location". M'enfin chacun son appréciation de la
compétence, n'est-ce pas ?

3) Aucun d'entre nous n'est ici pour *ton* besoin. Ici c'est une zone de
discussion, on est la pour discuter. On est pas sur un forum payant de
résolution de tes problèmes javascript. Que ça ne réponde pas totalement
à ton besoin c'est dommage mais pas réprimandable. Si ça ne te conviens
pas, tu peux toujours aller faire un tour ailleurs tu sais !

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


Wow, je suis impressionné par la profondeur d'une remarque si intelligente.

Puisqu'il n'a pas javascript, où est son problème ? Son bouton "back" ne
marche pas ? Je croyais que le site était JS *et* no JS

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


Pffff...

Parce que pour toi l'intérêt d'AJAX c'est quoi STP ?

Si ce n'est là que pour se prendre la tête comme tu le fais sur ton site
juste pour pouvoir avoir le pins "regardes, je fais de l'AJAX qui sert à
rien, j'suis un geek". Autant abandonner tout de suite et rester avec
des bêtes structures HTML statiques !

Ceci dit, une particularité d'AJAX est *effectivement* d'être privé de
l'historique de navigation. C'est comme ça, c'est une de ses spécificités !

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


Lol, pas envie de rencontrer cette personne avisée. Pour qu'il en vienne
à te *recommander* l'usage du eval(), je me dis qu'elle n'est pas si
recommandable que ça.

Bon allez, je suis trop bon, je vais réfléchir 15 secondes à ton problème.

Il n'existe actuellement aucune solution fiable à 100%. Tout simplement
parce que le "infamous" eval() va entre autre faire voler en éclat les
scopes d'exécution. Et les autres "solutions" envisagées ne sont pas
plus fiables.

<http://groups.google.fr/group/comp.lang.javascript/browse_frm/thread/7120355459a853f1>

En considérant que le "problème" est l'insertion de code javascript à
travers un réponse XHR (car même si tu es persuadé d'avoir correctement
exprimé ton besoin, saches que ce n'était *pas* le cas).

Il faudra nécessairement passer par une transformation de la structure
de la réponse XHR et par la création de fichier js individuels qui
pourront ensuite être insérés ou retirés du document selon les
instructions reçus.

Pas envie de coder pour toi, et oui tu m'as passablement mis en colère
avec ta réponse à Stéphane, mais on a déjà discuté ici de l'insertion
dynamique de script, te suffis de chercher.

Bien qu'aucune démonstration du problème (url ?) ni aucune ligne de code
n'ait été proposée, je suppose à la lecture confuse de ton post initial
que tu reçois tout le nouveau contenu HTML par la réponse XHR et que le
script remplace directement un quelconque div.innerHTML présent sur la page.

C'est cette structure là qu'il va te falloir revoir.

Mais bon, j'imagine que tu t'en fou passablement et que ton eval() te
suffis largement.

Très bien, au revoir donc ou adieu, c'est selon.

--
laurent
  Réponse avec citation
 
Page generated in 0,09328 seconds with 9 queries