|
Ajax désactivé, traitement non exécuté |
Débuté par Stéphane, 21 juil. 2014 21:18 - 15 réponses |
| |
| | | |
|
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 21 juillet 2014 - 21:18 |
Bonjour à tous.
J'avais codé un test pour savoir si ajax est activé ou non au démarrage de mon site (WebDev dynamique) afin d'afficher un message d'avertissement à l'utilisateur.
Mais j'avais jamais vérifié que cela fonctionnait , ayant remis à plus tard la désactivation sur les principaux navigateurs.
Et donc je viens d'essayer mais mon site n'affiche jamais mon message.
Le site se lance et là il y a plein de choses qui ne fonctionnent pas, et c'est normal vu que les scripts java sont désactivés.
Voici ce que je fais :
- dans ma première fenêtre, je teste dans le code de chargement de la page : SI AJAXDisponible() = Faux ALORS PopupAffiche(Popup_Erreur_Ajax) RETOUR FIN
La popup contient juste un libellé du message "Ce site a besoin d'ajax pour fonctionner, etc..." et un bouton pour fermer la popup.
Mais cette popup ne s'affiche pas, bien que j'ai désactivé les scripts java sur tous les navigateurs.
Avez-vous une idée ?
Je sais qu'aujourd'hui la chance (ou malchance) de rencontrer un navigateur sans javascript est très faible, mais je n'aime pas laisser un problème en suspens.
Merci d'avance. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 304 messages Popularité : +47 (51 votes) |
|
Posté le 22 juillet 2014 - 08:03 |
Salut Stéphane,
Es-tu certains que tu n'as pas un problème avec la popup ? Si tu mets uniquement le PopupAffiche() est ce que tu vois la popup ?
A+ Daryl
-- http://www.concept4u2.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 603 messages Popularité : +64 (70 votes) |
|
Posté le 22 juillet 2014 - 08:16 |
Salut Stéphane, Salut Daryl,
Une autre solution bien plus simple consiste à utiliser les messages furtifs (courts ou longs) avec toastaffiche()
-- Cordialement François
http://intra.fr http://intrasoftware.fr |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 22 juillet 2014 - 11:10 |
Merci de vos réponses.
Daryl : oui oui, je n'ai pas précisé, mais la popup s'affiche bien si je ne mets pas de condition, c'est bien la condition qui pose problème.
François : merci mais ça ne servirait à rien car en fait la popup est juste un test, ce que je veux faire c'est tout un traitement.
D'autres idées ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 22 juillet 2014 - 12:26 |
Je re-précise un truc :
java est bien désactivé puisque d'une part le site ne fonctionne plus de la même façon (boutons sans effets notamment) et que d'autre part, le site suivant : http://www.enable-javascript.com/fr/
affiche bien un message indiquant que javascript est désactivé.
Merci. |
| |
| |
| | | |
|
| | |
| |
Posté le 22 juillet 2014 - 14:33 |
Bonjour Stéphane
tu es en train de confondre AJAX et JavaScript...
Certaine, Ajax a BESOIN de JavaScript pour fonctionner, mais c'est un sur-ensemble beaucoup plus complexe.
Donc, il faut faire DEUX tests : 1. Tester si JS fonctionne 2. s'il fonctionne, tester si AJAX fonctionne
Pour le premier, ce qu'on fait en général est d'afficher un message statique disant que JS ne fonctionne pas, puis de le rendre invisible (ou hauteur zéro) avec une fonction en Javascript.
Pour le deuxième, tu as déjà ton code qui fonctionnera uniquement si JS est actif.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information sur http://fabriceharari.com
On 7/22/2014 4:26 AM, "Stéphane" wrote:
Je re-précise un truc : java est bien désactivé puisque d'une part le site ne fonctionne plus de la même façon (boutons sans effets notamment) et que d'autre part, le site suivant : http://www.enable-javascript.com/fr/affiche bien un message indiquant que javascript est désactivé. Merci. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 22 juillet 2014 - 17:39 |
Merci Fabrice
En fait je comprends pas bien un truc : pourquoi le traitement ne passe pas dans la condition AJAXDisponible() = Faux alors que javascript est désactivé ?
A moins que ce soit la fonction "popupaffiche" qui nécessite javascript ?
Bref, quoi qu'il en soit, j'ai inversé le problème en affichant une première page vide avec en plein milieu le message "Ce site a besoin de AJAX etc.." et dans le code navigateur CHARGEMENT, je teste AJAXDisponible et si = VRAI, j'exécute le traitement d'un bouton qui m'affiche la 1ère page de mon site.
Ainsi, si tout fonctionne correctement, la 1ère page de mon site est bien affiché, sinon, la page du message reste affichée.
Est-ce que cela te semble idiot ou bien as-tu une meilleure idée ?
Merci beaucoup. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 22 juillet 2014 - 18:22 |
hum hum
Je viens de tester, ça fonctionne bien quand javascript est désactivé.
Lorsque javascript est activé, j'aimerai que le message ne se voit pas du tout au lancement du site, or il s'affiche une demi seconde puis c'est ma première page qui apparait.
J'ai essayé de le rendre invisible puis de le faire apparaitre au bout de quelques secondes via la fonction "timer", (ainsi il n'apparaitrait que si l'on reste sur cette page, donc si javascript est désactivé), mais elle ne se lance même pas, donc le message n'apparaît pas !
En fait la fonction timer est aussi dépendante de javascript ?
Quelles fonctions ne le sont pas alors ?
Avez-vous une précision à m'apporter ?
A votre avis, est-ce que je me prends trop la tête pour un problème qui n'arrivera pratiquement jamais ?
Merci beaucoup. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 304 messages Popularité : +47 (51 votes) |
|
Posté le 22 juillet 2014 - 18:44 |
Salut Stéphane,
Je pense que tu te prends la tête même si c'est tout à fait louable de faire ce test. Pourquoi ne pas simplement mettre "Chargement en cours, si vous restez sur cette page alors c'est que probablement votre JavaScript est désactivé" ? Comme ça tu n'as pas besoin de timer, l'utilisateur sais qu'il y a un problème et toi tu te facilite la vie
A+ Daryl
-- http://www.concept4u2.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 22 juillet 2014 - 20:24 |
C'est génial !
Ah tu viens de me faire rire !
Merci, je vais faire ça |
| |
| |
| | | |
|
| | |
| |
Posté le 22 juillet 2014 - 20:41 |
Bonjour Stéphane
TOUTES les fonctions SONT en Javascript. Ce n'est pas qu'elles en ont besoin, c'est qu'elles sont ECRITES en JS, sont livrées avec les pages sous forme de bibliothèques de fonctions JS (comme les dll de windev)
Tu peux voir ces "dll JS" dans le répertoire de ressource de ton site.
Donc, TOUTE INSTRUCTION wlangage en code navigateur est en fait TRADUITE en JS par webdev et ce parce que un navigateur ne connait que le HTML pour la mise en page (avec les feuilles CSS) et le Javascript pour le code.
Donc, c'est pour ca que je parlais de mettre un gros message dans l'entête de tes pages, et d'avoir du code navigateur qui le rend invisible/hauteur zéro (dans une cellule au dessu de ta page, par exemple)
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information sur http://fabriceharari.com
On 7/22/2014 10:22 AM, "Stéphane" wrote:
hum hum Je viens de tester, ça fonctionne bien quand javascript est désactivé. Lorsque javascript est activé, j'aimerai que le message ne se voit pas du tout au lancement du site, or il s'affiche une demi seconde puis c'est ma première page qui apparait. J'ai essayé de le rendre invisible puis de le faire apparaitre au bout de quelques secondes via la fonction "timer", (ainsi il n'apparaitrait que si l'on reste sur cette page, donc si javascript est désactivé), mais elle ne se lance même pas, donc le message n'apparaît pas ! En fait la fonction timer est aussi dépendante de javascript ? Quelles fonctions ne le sont pas alors ? Avez-vous une précision à m'apporter ? A votre avis, est-ce que je me prends trop la tête pour un problème qui n'arrivera pratiquement jamais ? Merci beaucoup. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 23 juillet 2014 - 12:11 |
Merci Fabrice, t'es trop top
J'ai plutôt fait comme Daryl me l'a conseillé, car du coup mon site ne fonctionne plus normalement et si je laisse quand même l'accès, j'ai plein de chose invisibles qui apparaissent, aucun bouton ni lien ne fonctionnant, j'ai pas envie qu'un éventuel utilisateur croit que c'est mon site qui bug.
En plus, comme ça j'ai juste une seule instruction à gérer et rien à rajouter sur mes pages.
Tu pense que mon choix n'est pas judicieux ? |
| |
| |
| | | |
|
| | |
| |
Posté le 23 juillet 2014 - 14:03 |
Bonjour Stéphane ce que tu as choisi signifie que dans tous les cas NORMAUX (99.99% du temps) tu affiche une page supplémentaire, et ralentit donc ton site...
Donc, non, j ne pense pas que ce soit optimum.
Si tu ne veux pas qu'on voit ton site quand JS est désactivé, tu fais DEUX cellules l'une au dessus de l'autre. Celle du haut est visible et contient le message d'erreur, celle du bas INVISIBLE par défaut et contient toute ta VRAI page.
Dans le onload, tu rends la première invisible et la seconde visible. Si pas de JS, on ne voit que le message, si JS, on ne voit que ta page
Pas de page supplémentaire, pas d'attente en plus, et si tu fais un site awp (ou on peut accéder à n'importe quelle page), et que tu as ca dans ton modèle de page général, ca marche quelle que soit la page appelée.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information sur http://fabriceharari.com
On 7/23/2014 4:11 AM, "Stéphane" wrote:
Merci Fabrice, t'es trop top J'ai plutôt fait comme Daryl me l'a conseillé, car du coup mon site ne fonctionne plus normalement et si je laisse quand même l'accès, j'ai plein de chose invisibles qui apparaissent, aucun bouton ni lien ne fonctionnant, j'ai pas envie qu'un éventuel utilisateur croit que c'est mon site qui bug. En plus, comme ça j'ai juste une seule instruction à gérer et rien à rajouter sur mes pages. Tu pense que mon choix n'est pas judicieux ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 23 juillet 2014 - 15:40 |
Oui, c'est juste.
Sauf que... je l'avais déjà avant cette page (c'est sur ce forum qu'on m'avait conseillé, peut-être même toi ^^)
Car j'ai développé des pages différentes pour l'affichage sous navigateurs mobiles.
Et donc, ma première page permet de lancer la première page de la plateforme (détectée dans le code d'init du projet).
Pour cela, j'ai juste préfixé mes pages différemment et à chaque PAGEAFFICHE, j'indique le préfixe puis le reste du nom de la page.
Enfin bref, je m'éloigne. Donc, je l'ai cette page et je le lançais déjà le traitement (qui ne s'exécutera pas sans javascript) d'affichage de ma première page.
En fait, par rapport à ce que je faisais avant, je n'ai rajouté que le test "AJAXDISPONIBLE".
Je prends ton avis TRES TRES au sérieux, et je pense que tu as absolument raison alors aux vues de cette histoire de page pour la plateforme, tu pense que je devrais changer ou pas ?
A noter que j'ai cette page intermédiaire car WebDev m'oblige a choisir une page de démarrage et cela m'a été conseillé il y a longtemps ici. |
| |
| |
| | | |
|
| | |
| |
Posté le 23 juillet 2014 - 16:14 |
Rebonjour
il n'y a pas de réponse absolue... Si tu as déjà cette page, tu peux certainement continuer comme ca, mais :
- le choix dépend en réalité des stats de ton site. Si la grande majorité de tes utilisateurs est "classique' - pas mobile), tu les retarde avec ta page de démarrage et tu peux optimiser en mettant l'aiguillage sur la première page classique. Si c'est l'inverse, tu peux afficher la page mobile par défaut et permuter si nécessaire.
- en plus de ca, la plupart des sites ne font pas l'aiguillage de manière automatique, les mobiles d’aujourd’hui ayant souvent des écrans suffisamment grand pour afficher le site complet. Donc, ils détectent la plateforme mobile et PROPOSENT à l'utilisateur de changer pour le site mobile. Et ils laissent sur celui-ci un moyen de revenir au site classique pour quand l'utilisateur en a marre de cliquer toute le temps pour passer à la suite, ou pour quand il se rend compte que LA fonction qui l'intéresse n'est pas dispo en mode mobile.
Mais c'est un choix qui se fait au cas par cas, en fonction de TON site
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets ! Plus d'information sur http://fabriceharari.com
On 7/23/2014 7:40 AM, "Stéphane" wrote:
Oui, c'est juste.
Sauf que... je l'avais déjà avant cette page (c'est sur ce forum qu'on m'avait conseillé, peut-être même toi ^^)
Car j'ai développé des pages différentes pour l'affichage sous navigateurs mobiles.
Et donc, ma première page permet de lancer la première page de la plateforme (détectée dans le code d'init du projet).
Pour cela, j'ai juste préfixé mes pages différemment et à chaque PAGEAFFICHE, j'indique le préfixe puis le reste du nom de la page.
Enfin bref, je m'éloigne. Donc, je l'ai cette page et je le lançais déjà le traitement (qui ne s'exécutera pas sans javascript) d'affichage de ma première page.
En fait, par rapport à ce que je faisais avant, je n'ai rajouté que le test "AJAXDISPONIBLE".
Je prends ton avis TRES TRES au sérieux, et je pense que tu as absolument raison alors aux vues de cette histoire de page pour la plateforme, tu pense que je devrais changer ou pas ?
A noter que j'ai cette page intermédiaire car WebDev m'oblige a choisir une page de démarrage et cela m'a été conseillé il y a longtemps ici. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 23 juillet 2014 - 17:47 |
Très intéressante ta réflexion
Et à y réfléchir, je me dis que mes pages adaptées aux mobiles ne vont pas servir longtemps vu que nous avons l'intention de développer à terme sous Windev Mobile.
Je vais me pencher sur ton deuxième point, merci beaucoup, tu m'aide beaucoup et je t'en suis très reconnaissant. |
| |
| |
| | | |
|
| | | | |
| | |
|