こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

サーバ側とクライアント側のjavaScript

「サーバサイドでjavascriptを実行させる」というのはどういうことなのでしょうか?

node.js や、
イントラマートを使っているときは、
サーバサイドでのjavascriptというのも
全然理解できるのですが、

それらの基盤を使用していなくても、
サーバサイドの処理に、javascriptを使うことができるのでしょうか?

基本、jspの上の方に、
「サーバ上にあるjavascript」が
クライアントサイドで動くと捉えており、
そういう意味では、基本、javascriptはクライアントサイドで動くと捉えているのですが違うのでしょうか?

※java+jspで実装しています。
.

投稿日時 - 2018-08-07 22:50:13

QNo.9525586

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

>回答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なども実行可能な仮想マシン。

投稿日時 - 2018-08-10 20:35:50

ANo.3

>回答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」だと認識しておけばいいだろう。

投稿日時 - 2018-08-09 19:05:33

お礼

◆JVM
Rhinoと呼ばれる実行基盤と
Nashornと呼ばれるJavaScriptパーサーが存在し、
これはJavaから起動できるそうです。

◆nodyn
Node.jsのAPI実行環境を
JVMで実装し直してNode.jsと同じAPIが動くようにしたものがこれだそうです。

◆otto
Javaではないですが、Golangには
JavaScriptインタープリターがあるようです。

◆nginScript
nginxではこれでJavaScriptを実行できるようです。

普段使っていない機能なので難しそうです。
もっと簡単にできそうなのがあればよいのですが。。
.

投稿日時 - 2018-08-09 23:46:44

ANo.2

>回答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

投稿日時 - 2018-08-08 19:54:47

お礼

クライアントサイドで書く方は大丈夫です。
(javascriptが書けないのではなく、
 特別な基盤なしで、サーバに実行させる仕組みがわからない感じです。)

文面見るに、node.jsとかがなければできなさそうですね。
.

投稿日時 - 2018-08-09 09:59:24

ANo.1

>「サーバ上にある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を実行できるようにしてくれるものだ。プラットフォームという表現が正しい。

投稿日時 - 2018-08-08 19:39:08

お礼

ありがとうございます、理解は深まったのですが、サーバサイドでjavascriptを実行できることができるフレームワークがあること自体はわかっているのです。

それらの基盤を使用していなくても、
サーバサイドの処理に、javascriptを使うことができるのでしょうか?
.

投稿日時 - 2018-08-09 09:57:03

あなたにオススメの質問