サーバーサイド JavaScript はどのように使用/実装されますか?
-
22-09-2019 - |
質問
サーバーサイド JavaScript については長い間知っていますが、それがどのように機能するかについてはまったくわかりません。誰かが私に正しい方向を教えてくれませんか?
サーバーサイド JavaScript + Java Servlet テクノロジーの使用方法に興味があります
編集
素晴らしい!私はこれらのテクノロジーを以前に見たことがありましたが、何らかの理由でそれらを「サーバーサイド」JavaScript と関連付けていませんでした (doh!)
補足的な質問:JavaScript ライブラリを使用してコンテンツ (ExtJs など) を作成したい場合、クライアントで行うのと同じように、サーバー側で「ドキュメント」を変更することはできますか?
(最初の試みで分かると思います)
解決
サーバー側で JavaScript を実行するには、埋め込み可能な JavaScript エンジンが必要です。これらの「埋め込み可能な」エンジンのほとんどは、実行中の JavaScript コードと独自のオブジェクト/メソッドの間のインターフェイスを可能にする API を提供します。たとえば、Java または C# で記述された関数を実行できるように JavaScript コードを接続したり、システム内の非 JavaScript オブジェクトへのアクセスを含めるためにスクリプトのシンボル テーブルを拡張したりすることができます。
これらのエンジンのいくつかを検討してみますが、Java で書かれている Rhino が最適ではないかと思います。彼らのチュートリアルでは、Java 環境への Rhino の埋め込みについて概説しています。
- Rhino 埋め込みチュートリアル: http://www.mozilla.org/rhino/tutorial.html
- V8 は Google のエンジンです。V8 は現在スレッドセーフではないため、サーバー環境ではおそらくニーズに合わないでしょう。 http://code.google.com/p/v8/
- SpiderMonkey は、Firefox の JavaScript 実行を強化するエンジンです。ストレートCです。 http://www.mozilla.org/js/spidermonkey/
編集 あなたの2番目の質問への答えです。
JavaScript ライブラリによって生成されたコンテンツが何を意味するのか正確にはわかりません。ただし、ExtJS について言及していますが、これは HTML コンテンツを意味すると思います。DOM (JavaScript は読み取りおよび変更できますが、JavaScript 自体の「一部」ではありません) と Javascript 言語の違いを理解することが重要です。というアイデアが必要な場合は、 ドム サーバー側で Javascript が必要な場合は別の話になります。 言語 その場合は、上記のオプションが役立つはずです。
他のヒント
Mozillaの RhinoののJavaScriptエンジンを埋め込むために非常に簡単です。それは、Javaクラスのサブクラスとインタフェースを実装することができるだけでなく、単にいくつかの簡単なn」は汚いJavaScriptオブジェクトの策略をやって。私は今、数ヶ月のカップルのための私のオフの瞬間に GeoServer の中にそれを埋め込むことに取り組んできました。あなたはRhinoのを埋め込むのJava のコードの両方を見てみることができますそして、いくつかののJavaScriptの例は、私たちのSVNリポジトリにを。 Rhinoのもかなりいいがあります始めるにに導くます。
ASPとASP.NETは、サーバー側のJavaScriptをサポートしています。 ASPのために、あなたはすべてが宣言されます:
<%@LANGUAGE=JAVASCRIPT%>
ASPファイルの最上部に、あなたがJavaScriptでコーディングしています。 ASP.NETを使用すると、.NETフレームワークへのアクセスを得ることを除いて基本的に同じである。
Javaサーブレット前面にできません助け、それとの経験がない。
「Helmaは、サーバサイドJavaScript環境と迅速かつ効率的なスクリプティングとあなたのウェブサイトやインターネットアプリケーションを提供するためのWebアプリケーションフレームワークです。」 - http://helma.org/する
私は、Windows環境でのサーバサイドJavaScriptを使用して豊富な経験を持っています。すべてのWindowsシステム上のWindowsスクリプティングホストは、デフォルトの言語の一つとして、Javascriptを提供します。あなたは、任意の言語そのサポートのCOMからとインタフェースするCOMオブジェクトを作成することができます。私はこのMSDNページはあなたを取得すると思いますあなたがこのアプローチを使用したい場合は始めています。
私の直感では、COMを含まないものを選択した場合、あなたが幸せになるだろうということです。私はちょうどあなたがあなたの目の前にすべてのオプションを持っていた作りたかっます。
チェック http://www.commonjs.org/する
- MV
あなたがする必要があるすべてはExcelなど、あなたのHTMLを祝福されている場合は、あなたがより良いサーバーにHTMLを送信務めたかもしれないし、それがコンテンツ-dispositionヘッダーと適切なMIMEタイプでバック役立っています。 extは業務サーバ側に行くされていないので、サーバサイドJSは、通常のブラウザのようなDOMを実装していません。
また、あなたのHTMLのサーバーサイドを生成し、往復をスキップすることができます。たとえば POI のJavaのライブラリは、複数のシートと細胞機能と実際のバイナリExcelファイルを生成することができます。
あなたが本当にあなたのアプリケーションサーバなどのサーバサイドのJSを使用したい場合は、は、 Myna を検討してください。私は、その利点のいくつかのこの問題に言及しましたます。