• ベストアンサー

JavaScript 対 Perl ( CGI )

できましたら、両方のプログラムご経験のある方の意見を うかがえれたら、と思います。 JavaScript、ASP は業務で学ぶ機会があったのですが、 もはや Perl を覚える気力がありません。(苦笑) そこで、CGI にできて、JavaScript に出来ないこと。 ってありますか??? 両方のメリット、デメリットなど具体的に私的意見で結構 ですので、よろしくおねがいします。 また、サーバーからメールを受信して、HTML化したい のですが、JavaScript で可能でしょうか。 ( 結局これが聞きたい )

  • naru
  • お礼率76% (155/202)
  • CGI
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#25358
noname#25358
回答No.2

 もしかして、ASP上の JavaScript のことをおっしゃってるのでしょうか?  だとしたらご質問内のCGIという言葉は謝りがあります。ASP上の JavaScript はCGIです。  CGIとは、Common Gateway Interface で、「端末側パソコンからの要請に従ってサーバー側のプログラムが何らかの処理を行い、その結果を返すための方式」全般のことをいいます。このとき、サーバー側プログラムは Perl でなくてもかまいません。  インターネットエクスプローラ上の JavaScript は、主にHTMLの体裁を整えたり、ブラウザの挙動に変化を与えるための言語で、はっきり言って、企業が欲するような業務は何もできません。  しかしASP上の JavaScript は違います。  CreateObject が使えるので、Perl と同等のことができるか、あるいはコンポーネントを追加することで、おおよそ企業が求める可能性のある業務はすべて行うことができます。  ご希望のメールを受信してHTML化もできます。  もちろんその分、プログラム自体が複雑になりますが。  逆に Perl は、もともと文字列の加工を得意とする言語で、HTMLを編集して返すのに向いています。  ですので最初からサーバーに備わっている機能を使う分には有効で、JavaScript と比べても簡単に開発することができます。ですが、サーバーにない機能を使おうとするとちょっと面倒臭いです。

naru
質問者

お礼

ご説明、よくわかりました! 本格的にお答えいただき、感謝いたします。 やはり、CGIには携わっておくべきだと思いました。 さっそく勉強します。

その他の回答 (1)

noname#1785
noname#1785
回答No.1

ASPやPerlを含むCGIと、Javascriptはまったく別個のものです。 サーバーサイドで動くCGIと違って、JavaScriptはローカルサイドで動きます。 ですので、サーバーと連携して動くメール送信であるとか、DB操作(またはテキストファイル操作)という物は、Javascriptではできません。 あくまでも、ローカルのブラウザ上の物を操作するにとどまります。 でないと、サーバー側から直接そのホームページにアクセスした人のパソコンに悪さできてしまうからです。 > また、サーバーからメールを受信して、HTML化したい > のですが、JavaScript で可能でしょうか。 というわけで、これは通常のJavaScriptでは不可能です。 なぜ「通常の」と書いたかというと、普通のローカルでのみ動くJavaScriptとは別に、サーバーサイドJavaScriptという言語があるからです。 それを使用すれば、DB連携のCGIも作成可能なので、メールサーバーとの連携もできるかもしれません。 が、あまり一般的で無いため実際に使用したことはないので、詳細はわからないです。

naru
質問者

お礼

ご説明、よくわかりました! 本格的にお答えいただき、感謝です。 やはり、CGIには携わっておくべきだと思いました。 さっそく勉強します。

関連するQ&A

  • perlからJavascriptを起動

    perlからJavascriptを起動させたいのですが分からずに困っています。 HTMLには、以下のように記述し、 <a href="view.cgi?picture=(1)&name=(2)">画像表示</a> view.cgiからJavascriptを起動させ、画像をポップアップさせたいのですが、そもそもperlから直接Javascriptを起動させることは可能なのでしょうか? 宜しくお願いいたします。

  • javaとperlのcgi

    掲示板やらなにやらを作って使うなら パールのCGIとサーブレットで作るのと どっちが良いですかねぇ? ちなみにどちらもPGなのでどっちも 使えますが、悩んでます 個人レベルのHPではないので サーバーを借りてるんですがどっちが良いですかね? (ちなみにどちらも動くです) サーブレットでのデメリットは何スカね? やっぱみんなcgiで作ってるからCGIのがめりっとあり? それともなんかあるんかな? あとトムキャットでもパールのcgi動きます? おしえてマンせー

    • ベストアンサー
    • Java
  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • IISでCGIとしてのPerlが動かない

    Win2K ProにてIISでローカルサーバーでサーバーサイドスクリプトの勉強中です。 ASPは標準でついているので、PerlとPHPを組み込みました。 PHPは内部プロセス型ではなく、CGIバージョンですが、正常動作しました。 もちろんASPも。 それで問題なのですが、Perlがどうしても動きません。 PHPと同じように実行ファイルのパスや拡張子の設定はできているはずです。 しかし、いつまでたっても出力が出ず、2分くらいたってCGIタイムアウトとなってしまいます。 PerlにはActive PerlとCygwin付属のPerl両方試しましたが、タイムアウトです。 ファイルをコンソール上で実行してみましたが、Active PerlもCygwinのPerlも、期待通りの出力がなされています。 ちなみに、shファイルをCygwinのbashに関連付けて、実行させましたが、コンソール上での出力とはうらはらに、ブラウザ上ではやはりタイムアウトとなりました。 PerlのソースはいずれもほかのところのApacheでは動いているものです。 httpヘッダも正常です。 ソースの文字コードは英語のみ、EUC、改行コードcr+lf、lfのみなど、いろいろ試しましたがダメでした。 なにが原因なのでしょう。 IISを使っている方、アドバイスお願いします。

  • javascriptとperlの通信について

    javascriptからperl(サーバー)にXMLHttpRequestで情報送信を行っています 受信情報は通常http形式で返却されてきますが、通信量の無駄なので例えば数字だけをレスポンスさせたいです。 そうすればjavascript側で数字に応じて動作させることが出来るかと思います perl側でどのように記述すればそのように返却できるでしょうか?

    • ベストアンサー
    • AJAX
  • Perlからjavascript構文の出力について

    はじめまして。 現在javascriptを勉強中の者です。 PerlからHTML構文内にjavascript構文を追記し出力しようとしていますが、追記してPerlを実行させただけでInternal Server Errorとなってしまいます。 過去ログをいくつか見させて頂きましたが、自分のソースのどこが悪いのかさっぱりです;; やりたいことは、登録完了ポップアップを表示させるだけです。 表示条件等は別として、まずjavascript構文をソースに追記してポップアップを表示させたいです。 どうか良きアドバイスをお願い致します。 #!/usr/bin/perl require "cgi-lib.pl"; print "Content-type: text/html\n\n"; print qq! <HTML> <HEAD> <META Http-Equiv="Content-Type" Content="text/html;charset=EUC-JP"> <META name="robots" content="noindex,nofollow"> <TITLE>登録画面</TITLE> </HEAD> <BODY> <script type="text/javascript"> <!-- alert("登録完了"); // --> </script> <FORM ACTION="test.cgi" METHOD="post"> <FONT SIZE="4"><B>登録画面</B></FONT>  </BODY> </HTML> !;

    • ベストアンサー
    • Perl
  • JavaScriptでCGIの呼出し・・・???

    独学でプログラミングを始め、最近ではWeb系の勉強を始めました。 JavaScriptという言語とHTMLの勉強をしています。 そこで、どうしてもわからない事があります。 色々とネットで検索をしてみたのですが、私の理解力がないのか回答を見つけることができません。 どうか教えてください。 JavaScriptで他のサーバにあるCGIにデータを渡す方法です。 JavaScriptでHTMLの「Get」や「Post」のような機能があれば、できるのではないか、と考えたのですが、リファレンスを見ても、「Get」や「Post」はありませんでした。 JavaScriptにはそのような機能はないのでしょうか? Ajaxという機能があるようなのですが、その機能を使うしか方法はないのでしょうか? Ajaxも勉強したいと思っているので、方法があれば、ぜひ教えてください。

  • Perl CGIで、アップロードができない

    Perl my $fhandle = $query ->upload('A'); HTML <INPUT TYPE="HIDDEN" VALUE="C:\temp\1.txt"/> ボタンクリックで、JavaScriptでHTMLのhiddenに値をセットしています。 その値をPerlでuploadすると、値がセットされません。 <INPUT TYPE="FILE" で、手動でセットすると上手くいきます。 なんんとかHIDDENでできないでしょうか? FILEでしか駄目な場合、JavaScriptで、FILEにセットする方法をご教授下さい。 今、現状はIFRAMEでFILEで選択したファイルパスをボタンクリックで、メインのFORMのHIDDENに渡して、CGIを呼んでいます。

    • ベストアンサー
    • Perl
  • javascriptの中で、perlのコマンドを実行できないか。

    javascriptの中で、perlのコマンドを実行できないか。 java:クライアント側の処理。 perl(cgi):サーバ側の処理。 なので、愚問かもしれないのですが、 ↓====================================== <script language="JavaScript"> <!-- function aaa(){  : EOM (この間に、perlの処理) print <<EOM; : } // --> </script> ↑====================================== と言った感じで、javascriptのfuncitonの中で、 perlを使って、データベースへの操作をしたいのですが、 やはり、無理でしょうか。 あるいは、代案などあればご教授願えませんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • Perlを学ぶ理由付けはあるでしょうか?

    Perlを学ぶ理由付けはあるでしょうか? HTML、PHP、JavaScriptなどを少し勉強して来ましたが、 その上、Perl/CGIを学ぶ必要があるでしょうか。 Perlを学ぶ利点を教えて下さい。

    • ベストアンサー
    • Perl