IISサーバーでJavaScriptを実行します
-
01-10-2019 - |
質問
次の状況があります。顧客は、jQueryを使用してJavaScriptを使用して複雑なWebサイトを作成します。以下の理由で、サーバー(IIS)でJavaScriptとjQueryを使用したいと思います。
スキル転送 - サーバーでJavaScriptとjQueryを使用したいと考えています。たとえば、VBスクリプトを使用する必要はありません。 /クラシックASP。 .NETフレームワーク/Javaなどは、このため除外されます。
検索/アクセシビリティのための改善されたオプション。 jqueryをテンプレートシステムとして使用できるようにしたいと考えていますが、これはサーバーでこのコードを選択的に実行できない限り、検索エンジンやJSのユーザーにとってはオフになっていない場合は実行できません。
IISとWindowsサーバーには多大な投資があるため、オプションではありません。
Windows Script Hostを使用してIISでJScriptを実行できることは知っていますが、スケーラビリティとこれを取り巻くプロセスにはわかりません。また、これがDOMにアクセスできるかどうかもわかりません。
これが状況をうまくいけば説明する図です。誰かが似たようなことをしたかどうか疑問に思っていましたか?
編集:私はWebアーキテクチャの批評家を探しているのではなく、JavaScriptを使用してクライアントに送信する前にページのDOMを操作するためのオプションがあるかどうかを知りたいだけです。 ジャクサー そのような製品の1つ(IISなし)に感謝します。
解決
見て ブラウザをサーバーに持ち込みます, サイ, 、 と MicrosoftのIISをJavaサーブレットエンジンとして使用します.
最初のリンクは、John Resig(JQuery's Creator)ブログからのものです。
2011年8月2日更新
他のヒント
サーバー上のクライアントJSを再利用するというアイデアは魅力的に聞こえるかもしれませんが、jQuery自体がサーバー環境で実行する準備ができているかどうかはわかりません。
JQUERYのグローバルコンテキストを何らかの形で初期化することで定義する必要があります window, document, self, location, etc.
. 。それが実行可能であるかどうかはわかりません。
さらに、Cheesoが述べたように、Active Serverページは非常に時代遅れのテクノロジーであり、世紀の初めにMicrosoftによってASP.NETに置き換えられました。私は以前、ASP 3.0を1年以上使用してレガシーシステムを維持していましたが、それは痛みでした。最も素晴らしい娯楽はデバッグでした。今日の目的のためにほとんど何も見つけることができず、IISログのような美しいエラーを減らす必要があります。
エラー'800A9C68 '
アプリケーション定義またはオブジェクト定義エラー
それにもかかわらず、クライアントとサーバーのJScriptを再利用できたことを確認できます。しかし、これはサーバーで使用されることを知っていた私によって書かれたコードでした。
PS私はそのように移動することをお勧めしません。 HTMLとJavaScriptを書く人に馴染みのあるテンプレートフレームワークがたくさんあります。
JScriptは、ASPと呼ばれるものを介してIISで実行されます。
アクティブサーバーページ。
1996年に最初に利用可能でした。
最終的には、後継者としてASP.NETが紹介されました。しかし、ASPはまだサポートされています。
ただし、HTMLページにはDOMはありません。
アーキテクチャを少し再考する必要があるかもしれません。
準備ができている場所に近い場所にいる可能性が高い唯一の実行可能なソリューションには、Javaの前にIISを置くことが含まれていると思います。私がJavaのコード化されていることを知っている2つのブラウザのような環境があります:
1)env-js(参照 http://groups.google.com/group/envjs と http://github.com/thatcher/env-js )これはJQueryのJohn Resigからの貢献があり、JQueryのテスト/サポートを念頭に置いてまとめられたと思います。
2)htmlunit(参照 http://htmlunit.sourceforge.net/ )これは年上であり、もともとjQueryを中心に考案されたものではありませんでしたが、それを使用してjqueryのテストスイートを正常に実行するという報告があります(http://daniel.gredler.net/2007/08/08/htmlunit-taming-jquery/ ).
純粋なIIS/MSが必要な場合は、WindowsScriptのホストや半abandabranded jscript.netのようなものについてのあなたの観察は、ポートと一緒に来るのと同じくらい近くにあると思います(あなたはそれをenv-jsやhtmlunitのようなものを開始する必要があります。
また、サーバー側のJavaScriptソリューションのウィキペディアリストを見たことがあるかどうかはわかりません。
http://en.wikipedia.org/wiki/server-side_javascript
最後に...おそらく、ある種のDOMライブラリとファーストクラスの関数を既に持っている(または、それを失敗している)の言語でサービス可能なjQueryのようなライブラリを書くことができます。 eval
施設)。たとえば、pquery for perl(http://metacpan.org/pod/pquery )。これにより、ドキュメントを操作するjQueryスタイルのメリットが得られます。スキルの転送は素晴らしく、JavaScriptは非常に素晴らしい機能の素晴らしい合流点を持っていますが、一方で、複数の言語を学ぶのに十分な注意を払っている開発者も素晴らしいことであり、JSはそこに唯一の素晴らしい言語ではありません。
主にブラウザベースのスクリプトだと思うので、おそらくVBまたは.NETに基づいたテクノロジーを使用して、テンプレートからHTMLを実行または生成する方が良いでしょう。 Javaの世界には、これらのいくつかが(速度のように)あるからだと確信しています。その後、jQueryを使用してクライアント側の機能とユーザビリティを作成または追加して、ウェブサイトを使用しやすくします。
正確にはどういう意味ですか
「顧客はjQueryを使用してJavaScriptを使用して複雑なWebサイトを作成します」
jQueryの半分のポイントは、開発者がDOMを操作できるようにすることで、Webサイトにインタラクティブな機能強化を追加することです。サーバーでJavaScriptを実行し、HTMLのみをレンダリングすることにより、サーバーへの往復をせずにこれらの機能強化を追加する機能が失われます(Webforms Postback Model ... UGH ... UGHを考えてください)。
さて、あなたが本当に意味するのかが、顧客がjQueryに基づいてサイトビルダーを使用している場合、そもそもそのツール出力フラットHTMLを持っていないのですか?
これを見てください テクノロジー. 。サーバー、クライアント、またはその両方で実行するためにスクリプトを呼び出すことができます。さらに、これにより、サーバー上のFirefoxエンジンが実際に実装されています。それを見てください。
AptanaのJaxerは、これまでの最初のAjax Webサーバーです。まだ試していませんが、そうします。有望で非常に強力に見えます。