- 締切済み
サーバ側とクライアント側のjavaScript
「サーバサイドでjavascriptを実行させる」というのはどういうことなのでしょうか? node.js や、 イントラマートを使っているときは、 サーバサイドでのjavascriptというのも 全然理解できるのですが、 それらの基盤を使用していなくても、 サーバサイドの処理に、javascriptを使うことができるのでしょうか? 基本、jspの上の方に、 「サーバ上にあるjavascript」が クライアントサイドで動くと捉えており、 そういう意味では、基本、javascriptはクライアントサイドで動くと捉えているのですが違うのでしょうか? ※java+jspで実装しています。 .
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- amanojaku1
- ベストアンサー率54% (265/488)
>回答No.3 amanojaku1 そんなに出て来ているとは知りませんでした。 >Rhinoと呼ばれる実行基盤と >Nashornと呼ばれるJavaScriptパーサーが存在し、 >これはJavaから起動できるそうです。 JavaでJavaScriptを実行する「Nashorn」が非推奨に、ECMAScriptの速い進化に追いつけないと。代替案はGraalVM https://www.publickey1.jp/blog/18/javajavascriptnashornecmascriptgraalvm.html >JavaVM上でJavaScriptを実行する機能としては、Nashorn登場以前からMozillaが開発したオープンソースのRhinoが存在しており、Java 6からサポートされていました。 >NashorhはこのRhinoを置き換える形でオラクルが開発を始め、ECMAScript 5.1に対応したより高速でセキュアなJavaScriptエンジンとしてJDK 8に搭載されました >しかし今回のJEP 335で非推奨となり、将来的にはこの機能がJDKからなくなることが予想されます。 >非推奨の理由として、JavaScriptの言語仕様を策定しているECMASccript仕様の進化が速く、それに追随していくのが難しくなっていることが挙げられています >Nashornが非推奨となることに対する代替措置として提案されているのが、オラクルが多言語対応VMとして開発を進めているGraalVMおよびそのうえでJavaScriptを実行可能にするGraalJSの利用です。GraalVMは単一のVMとしてJavaやJavaScriptだけでなくRubyやPythonなども実行可能な仮想マシン。
- amanojaku1
- ベストアンサー率54% (265/488)
>回答No.1 amanojaku1 >それらの基盤を使用していなくても、 >サーバサイドの処理に、javascriptを使うことができるのでしょうか? (Node.jsのような開発基盤が無い)サーバだけでは、JavaScriptは実行できません。 前述したページの記事によると下記のように解説されています。 初心者向け!3分で理解するNode.jsとは何か? https://eng-entrance.com/what-is-nodejs >JavaScriptはブラウザ上だけではなく、サーバサイドでも動く。PHPやJavaなどと同じような使い方ができるということだ。 >サーバサイドJavaScriptと呼ばれるが、その中でも代表的なのがNode.jsだ。現状は、他にそこまで有名なものもないので、「Node.js = サーバサイドJavaScript」だと認識しておけばいいだろう。
- amanojaku1
- ベストアンサー率54% (265/488)
>回答No.1 amanojaku1 下記は当方が作った(クライアント・サイド)JavaScriptのデモです(ブラウザ上で動いています)。 CheckQuestion015 http://ashtarte.pa.land.to/test/CheckQuestion015.htm CheckQuestion031 http://ashtarte.pa.land.to/test/CheckQuestion031.htm RolloverText006 http://ashtarte.pa.land.to/test/RolloverText006.htm
お礼
クライアントサイドで書く方は大丈夫です。 (javascriptが書けないのではなく、 特別な基盤なしで、サーバに実行させる仕組みがわからない感じです。) 文面見るに、node.jsとかがなければできなさそうですね。 .
- amanojaku1
- ベストアンサー率54% (265/488)
>「サーバ上にあるjavascript」が >クライアントサイドで動くと捉えており、 >そういう意味では、基本、javascriptはクライアントサイドで動くと捉えているのですが違うのでしょうか? クライアント・サイド・JavaScriptはブラウザ上で動きます。 ですのでブラウザごとにJavaScriptは非互換な部分があります。 ブラウザごとの「HTML、CSS、JavaScript」の非互換な部分を踏まえ、メジャーなブラウザで同じ表示を再現できる状態のことをクロス・ブラウザと言います。 初心者向け!3分で理解するNode.jsとは何か? https://eng-entrance.com/what-is-nodejs >JavaScriptはブラウザ上だけではなく、サーバサイドでも動く。PHPやJavaなどと同じような使い方ができるということだ。 >サーバサイドJavaScriptと呼ばれるが、その中でも代表的なのがNode.jsだ。現状は、他にそこまで有名なものもないので、「Node.js = サーバサイドJavaScript」だと認識しておけばいいだろう。 >サーバサイドで動くというとPHPなどと一緒だと思われたかもしれないが、実はまったく違う。 >そもそもNode.jsがサーバサイドで動くプログラムという説明自体が正確ではない。より正確に言うと、Node.jsはサーバサイドでJavaScriptを実行できるようにしてくれるものだ。プラットフォームという表現が正しい。
お礼
ありがとうございます、理解は深まったのですが、サーバサイドでjavascriptを実行できることができるフレームワークがあること自体はわかっているのです。 それらの基盤を使用していなくても、 サーバサイドの処理に、javascriptを使うことができるのでしょうか? .
お礼
◆JVM Rhinoと呼ばれる実行基盤と Nashornと呼ばれるJavaScriptパーサーが存在し、 これはJavaから起動できるそうです。 ◆nodyn Node.jsのAPI実行環境を JVMで実装し直してNode.jsと同じAPIが動くようにしたものがこれだそうです。 ◆otto Javaではないですが、Golangには JavaScriptインタープリターがあるようです。 ◆nginScript nginxではこれでJavaScriptを実行できるようです。 普段使っていない機能なので難しそうです。 もっと簡単にできそうなのがあればよいのですが。。 .