2010-11-27 35 views
1

J'ai regardé de nombreux toolkits Javascript. Chacun d'entre eux ont des points forts différents, mais tous semblent manquer une solution de sauvegarde utilisable si Javascript échoue ou est désactivé. Donc, je suis à la recherche de la boîte à outils Javascript/framework qui a la meilleure méthode de sauvegarde quand Javascript échoue.Quelle boîte à outils Javascript se dégrade le plus gracieusement?

====

Par exemple:

Je voudrais avoir une simple requête AJAX, qui charge des données dans un DIV en cliquant dessus.

Mais si le Javascript échoue ou est éteint, je veux avoir un moyen alternatif pour que les utilisateurs accèdent à ce contenu.

Je pourrais utiliser PHP, mais cela impliquerait de développer chaque fonctionnalité deux fois ... Est-ce le seul moyen?

+0

Par définition, vous ne pouvez pas utiliser Javascript s'il est désactivé ... Quel type de solution de sauvegarde voulez-vous dire? – Cameron

+0

Merci pour la suggestion, je vais ajouter un exemple d'utilisation à ma question. – Ademos

+0

Comment votre application se comporte sans javascript ne peut pas dépendre d'un framework javascript. Tout est dans votre implémentation. – gpasci

Répondre

0

Si vous avez beaucoup de code JavaScript, vous pouvez le réutiliser sur le côté serveur en utilisant Node.js cadre, si votre objectif est d'écrire du code une seule fois et l'exécuter où vous vouloir. Node.js est JavaScript côté serveur qui peut exécuter votre code côté client sur le serveur. Votre code côté client s'exécutera côté serveur avec peu ou pas de modification selon les personnes de node.js. Dans la mesure où votre appel Ajax va ... Ceux qui devraient aussi fonctionner très bien, au moins en théorie, selon ce que j'ai entendu parler de node.js. Lorsque vous exécutez votre code Ajax côté client côté serveur et que le code Ajax contient une requête "get", l'infrastructure node.js charge les données demandées à partir du système de fichiers (un fichier ou db ou xml ou autre) et renvoie le ensemble de données normalement comme si la demande provenait réellement d'un appel côté client. Bien que je n'ai pas écrit de code pour le tester, il y en a quelques exemples sur le site developer.yahoo.com. Disclaimer: Je ne travaille pas pour Yahoo ou avoir une association avec une entreprise qui promeut Yahoo.

+0

Merci pour la réponse concise! --- J'avais déjà entendu parler de Node.js de la réponse de Galambalazs, mais il utilisait une terminologie que je ne connaissais pas. --- Votre réponse était facile à comprendre et directement liée à mon problème, merci encore. – Ademos

1

Vous devriez construire votre application en tant que simple HTML qui fonctionnerait sans js. Et seulement alors js devrait être mis en œuvre. Dans ce cas, vous aurez un événement d'application utilisable sans le support de js.

+0

Le problème avec cette méthode, c'est qu'elle se heurte au problème du "flash of unstyled content". ---- Ceci est quelque peu déroutant --- en particulier pour les personnes à la vitesse de l'accalmie, qui verront le contenu non créé pendant une période plus longue. – Ademos

+0

Vous pouvez avoir 2 versions différentes. Si js est détecté dans frontpage, vous pouvez rediriger les utilisateurs vers le site js enabled. – Napas

+0

Vrai, mais pour un grand site avec beaucoup de pages, maintenir deux versions pourrait être fastidieux ... Est-ce la seule façon d'éviter le F.O.U.C.? – Ademos

0

Javascript est un génial langue. En fait, vous pouvez l'utiliser efficacement côté serveur avec Node.js. Maintenant, avec jsdom vous pouvez réellement copier votre code côté client et générer la page entière sur le serveur. @davglass à l'équipe de YUI a fait un travail incroyable, en intégrant des modules côté client sur le serveur.

Vous pouvez voir que presque tous les composants de YUI peut fonctionner sur le côté serveur comme fallback.
par exemple: datatabe, calendar, tabview

+0

Javascript côté serveur est un concept intrigant. Mais cela ne gâche-t-il pas tout le concept de l'économie de bande passante grâce aux scripts côté client? – Ademos

+0

Ce qui le rend excitant, c'est que vous pouvez utiliser le même code pour générer du contenu côté serveur. Vous avez seulement besoin de tout écrire une fois, comme vous l'avez indiqué dans votre question. – galambalazs

+0

Mais node.js travaillerait-il avec les appels AJAX pour les données? --- Se référant à mon exemple ci-dessus; est-ce que je pourrais avoir ces données apparaissent également sans Javascript côté client via node.js? – Ademos