Exécuter un code javascript sur le serveur IIS
J'ai la situation suivante. Un client utilise JavaScript avec jQuery afin de créer un site web complexe. Nous aimerions utiliser JavaScript et jQuery sur le serveur (IIS) pour les raisons suivantes:
- Le transfert de compétences -, nous aimerions utiliser JavaScript et jQuery sur le serveur et ne pas avoir à utiliser par exemple un Script VB. /asp classique. .Net framework/Java etc est exclu à cause de cela.
- L'amélioration des options de recherche/de l'accessibilité. Nous aimerions être en mesure d'utiliser jQuery comme un système de template, mais ce n'est pas viable pour les moteurs de recherche et les utilisateurs avec js désactivé - à moins que nous sélective permet d'exécuter ce code sur le serveur.
Il y a d'importants investissements dans les services IIS et Windows Server, de sorte qu'un changement qui n'est pas une option.
Je sais que vous pouvez exécuter jScript sur IIS à l'aide de windows Script host, mais je suis pas sûr de l'évolutivité et le processus entourant cette. Je suis également pas sûr que cela aurait accès au DOM.
Voici un schéma qui nous l'espérons vous explique la situation. Je me demandais si quelqu'un a fait quelque chose de semblable?
EDIT: je ne suis pas à la recherche de porte-parole sur l'architecture du web, je suis tout simplement désireux de savoir s'il y a des options pour manipuler le DOM d'une page avant de l'envoyer au client, à l'aide de javascript. Jaxer est un de ces produits (pas de IIS) Merci.
merci - j'ai vu cette question, mais il ne marche pas vraiment répondre à comment JScript peut manipuler le DOM avant le balisage est envoyé au navigateur. La façon dont je le comprends, JScript peut seulement être utilisé pour générer le balisage dans ce scénario.
Vous pourriez peut-être expliquer POURQUOI vous souhaitez exécuter jQuery sur le serveur. jQuery est principalement utilisé dans la fabrication de navigateur des applications plus dynamique et plus réactif et moins dépendante de la page/modèle de requête. Quelle est la source de l'envie d'utiliser ce genre de bibliothèque sur le serveur? Le DOM HTML n'est pas accessible sur le serveur, mais si c'étaient, il n'y aurait pas des effets dynamiques visibles. Vous serait tout simplement obtenir une modification de la DOM. Pourquoi ne pas produire le contenu sur le serveur-côté, comme souhaité, en premier lieu, plutôt que d'espérer produire, puis le modifier avec jQuery?
Je vous remercie. Je comprends pourquoi et comment jQuery est utilisé sur le client. Comme je l'ai expliqué dans ma question, c'est parfois pas possible. 1 - pour des raisons de moteur de recherche 2. pour certains scénarios d'accessibilité lorsque le script est désactivé. Je tiens simplement à déplacer ce traitement sur le serveur dans l'un de ces deux scénarios, sans avoir à partager mon code. Je ne suis pas intéressé par des effets dynamiques, je suis intéressé par la manipulation du DOM.
Westgate. Je veux juste dire que j'aime cette idée. Quelqu'un devrait le port de Rhino en C#. [baver]
OriginalL'auteur James Westgate | 2010-04-27
Vous devez vous connecter pour publier un commentaire.
Ont un coup d'oeil à amener le navigateur vers le serveur, Rhino, et Utilisation de Microsoft IIS comme un moteur de servlet Java.
Le premier lien est à partir de John Resig (jQuery créateur) blog.
Mise À Jour Le 2 Août 2011
Node.js est à venir pour Windows.
Merci beaucoup, c'est exactement ce que je cherchais. Bien qu'il ne peut pas être grand à partir d'un point de vue des performances, c'est un début. Je pense vraiment qu'il ya une opportunité pour un .net javascript côté serveur de mise en œuvre basée sur le DLR combiné avec Jean Resigs idées. Je peut commencer un projet sur git/codeplex.
doux. tenez-nous au courant. Je suis vraiment intéressé.
Cela peut ehlp. htmlagilitypack.codeplex.com
Node.js comming woo hooo
OriginalL'auteur David Murdoch
L'idée de réutiliser client JS sur le serveur peut sembler tentant, mais je ne suis pas sûr que jQuery lui-même serait prêt à fonctionner dans un environnement serveur.
Vous aurez besoin de définir le contexte mondial pour jQuery en quelque sorte par l'initialisation de la
window, document, self, location, etc.
. Je ne suis pas sûr que c'est faisable.En outre, comme Cheeso a mentionné, Active Server Pages est un très désuet de la technologie, il a été remplacé par ASP.Net par Microsoft au début du siècle. J'ai utilisé pour maintenir un système d'héritage à l'aide d'ASP 3.0 pour plus d'un an et qui a été la douleur. Le plus merveilleux passe-temps était de débogage: vous aurez du mal à trouver quoi que ce soit pour le but d'aujourd'hui et devra decript belles erreurs comme dans le journal IIS:
Néanmoins, je peux confirmer que j'ai réussi à réutiliser le client et le serveur JScript. Mais ce code a été écrit par moi qui savait qu'il allait être utilisé sur le serveur.
P. S. je ne recommande pas de se déplacer de cette façon. Il y a beaucoup de template de cadres qui sont familiers à ceux qui écrivent de HTML et de JavaScript.
OriginalL'auteur newtover
JScript s'exécute sur IIS par quelque chose qui s'appelle ASP.
Active Server Pages.
Il a d'abord été disponible en 1996.
Finalement ASP.NET a été présenté comme un successeur. Mais l'ASP est toujours pris en charge.
Il n'y a pas de DOM de la page HTML.
Vous devrez peut-être reconsidérer votre architecture un peu.
La raison pour laquelle je souligne que JScript s'exécute en ASP, c'est parce que de votre déclaration, je sais que vous pouvez exécuter jScript sur IIS à l'aide de windows Script host, mais.... Cette déclaration ne mentionne pas la principale technologie qui pourrait être utilisée pour exécuter JScript sur IIS.
OriginalL'auteur Cheeso
Je pense que les seules solutions viables vous êtes susceptibles de trouver n'importe où près de prêts à aller de l'impliquer mettre IIS en face de Java. Il y a deux type navigateur environnements, je suis conscient de codé en Java:
1) Env-js (voir http://groups.google.com/group/envjs et http://github.com/thatcher/env-js )
Je crois que celui-ci a des contributions de jQuery John Resig et a été mis en place avec jQuery tests/soutien à l'esprit.
2) interface htmlunit (voir http://htmlunit.sourceforge.net/ ), celui-ci est plus vieux, et n'a pas été conçu à l'origine autour de jQuery, mais il ya des rapports dans la nature de l'utiliser pour exécuter jQuery suite de test avec succès (http://daniel.gredler.net/2007/08/08/htmlunit-taming-jquery/ ).
Si vous voulez quelque chose de pur-IIS/MS, je pense que votre observation à propos de la windowsScript d'accueil et/ou quelque chose comme les semi-abandonné JScript.NET est probablement à peu près aussi proche que vous allez venir, avec un port (que vous aurez probablement commencer) de quelque chose comme l'Env-js ou interface htmlunit.
Aussi, je ne sais pas si vous avez vu l'article sur Wikipedia: liste de JavaScript côté serveur solutions:
http://en.wikipedia.org/wiki/Server-side_JavaScript
Enfin... on pourrait probablement écrire une réparable jQuery-comme la bibliothèque dans n'importe quelle langue qui a déjà une sorte de DOM de la bibliothèque et de première classe de fonctions (ou, à défaut d'une
eval
de l'installation). Voir, par exemple pQuery pour Perl (http://metacpan.org/pod/pQuery ). Ce serait que vous obtenez les avantages de jQuery style de la manipulation des documents. Transfert de compétences est grande et JavaScript a un merveilleux confluence des caractéristiques très agréable, mais d'un autre côté, avoir des développeurs qui s'occupent d'apprendre plusieurs langues est aussi grande, et le js n'est pas le seul beau langage.+1 merci Beaucoup pour la réponse.
OriginalL'auteur Weston C
Je pense que c'est essentiellement un navigateur basé sur le script alors, probablement, vous êtes mieux de l'utilisation de technologies basées sur VB ou .NET d'effectuer ou de générer du HTML à partir de modèles. Je suis sûr qu'il y a parce que dans le monde java il y a un peu de ces autour (comme la vitesse). Vous devez ensuite utiliser jQuery pour créer ou ajouter des fonctionnalités côté client et la convivialité de sorte qu'il rend le site plus utile qu'il ne l'aurait été.
OriginalL'auteur pengtuck
Que voulez-vous dire exactement par
La moitié du point de jQuery est de le rendre facile pour les développeurs de manipuler le DOM, et donc ajouter interactif améliorations apportées à un site web. Par l'exécution de Javascript sur le serveur et le rendu HTML, vous perdrez la possibilité d'ajouter ces améliorations, sans en faire un aller-retour vers le serveur (pensez à WebForms modèle publication...pouah).
Maintenant, si ce que vous vraiment dire, c'est que le client utilise un générateur de site basé sur jQuery, pourquoi ne pas avoir que la sortie de l'outil de télévision HTML en premier lieu?
Merci encore pour la réponse. Croiriez-vous qu'il est plat html avec des tonnes de jQuery. Et c'est en double avec xsl et xml transforme sur le serveur pour <noscript> versions.
OriginalL'auteur roryf
Prendre un coup d'oeil à ce la technologie. Vous pouvez invoquer l'exécution de scripts sur le serveur au client, ou les deux. En Plus, c'est vraiment implémente le moteur de firefox sur le serveur. Prendre un coup d'oeil.
Aptana est Jaxer est la première AJAX serveur web jusqu'à présent. Je n'ai pas essayé encore, mais je le ferai. L'air prometteur et très puissant.
OriginalL'auteur Carlos