javascriptとPHPの使い分けについてにお聞きします。
ソースを隠すことのできるPHPと、
クライアントサイドスクリプトの強みを持つjavascript。
それぞれの特長を活かし、適材適所に使い分ける、
ということは分かっているつもりです。
その上でお聞きしたいことがあります。
どちらの言語でも可能な処理(ブラウザに時刻を表示する等)の場合には、
一体どちらを使うべきでしょうか。
考え方の指針をどなたかお与え下さい。
ソースを隠すことに重きを置かない場合、
処理速度の速さなど、パフォーマンス面で優れた方を、
ケースバイケースでチョイスしていけたらと思っています。
No.4ベストアンサー
- 回答日時:
サーバサイドとクライアントサイド、というところになりますが、
JavascriptはアクセスしてきたブラウザがJavascriptの実行エンジンにて処理を行いますので、サーバに負荷がかかりません。
例えば、郵便番号を入れて、該当する住所を検索し自動的に挿入されるスクリプトを考えた場合、
http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2 …
こちらのライブラリのようにJavascript(+JSON)でやるのか、「住所検索ボタン」をかなんかを設置して、郵便番号をPOSTしてやって、サーバに保存した郵便番号一覧からサーチしてページを更新するのか。
どちらの処理も負荷としては大差ないですが、直感的かそうでないか、というところで見てみれば、大分差があるように思えます。
実際に目的の処理結果としては「使用用途が等価であるケース」な場合はあると思いますが、ことインターフェイスとしての見せ方に関しては、等価であるケースは少ないと思います。
また、等価な場合があったとしても、その動作が複雑であった場合、車輪の再開発を行わず、何らかのライブラリを使うと思いますが、より優れたライブラリがPHPなのか、Javascriptなのかで選択も変わると思います。
とりあえず、今回のご質問に関しては、実際に「仕様用途がほぼ等価であるケース」に直面した際に、もう一度質問しなおしたほうが良いと思います。
こんばんは、hogehoge78さん。
>Javascriptの実行エンジンにて処理を行いますので、サーバに負荷がかかりません。
ということは、ページ出力の速さは、
クライアントサイドのPCの処理性能に依存することになりますよね。
どこかで読んだ記憶がありますが、それを思い出すきっかけとなりました。
>どちらの処理も負荷としては大差ないですが、直感的かそうでないか、というところで見てみれば、大分差があるように思えます。
とてもよくわかりました。
さすがだなぁと感心してしまいました。
>実際に目的の処理結果としては「使用用途が等価であるケース」な場合はあると思いますが、ことインターフェイスとしての見せ方に関しては、等価であるケースは少ないと思います。
郵便番号の例を受けて、確かに、そのような気が私もしてきました。
>また、等価な場合があったとしても、その動作が複雑であった場合、車輪の再開発を行わず、何らかのライブラリを使うと思いますが
ライブラリを使うべき処理が発生したとして、
その処理において、どちらの言語のライブラリを使うのが、より適当か、という判断基準
も確かにありますね。
もっとも、まだ、ライブラリを利用して~なんたら~
なんていう段階にはない私ですが。苦笑
現在、私、車輪の再開発中です。笑
コーディングの練習も兼ねまして。
>とりあえず、今回のご質問に関しては、実際に「仕様用途がほぼ等価であるケース」に直面した際に、もう一度質問しなおしたほうが良いと思います。
はい、そうさせて頂きます。^^
いや~、毎回、惚れ惚れしてしまいます。笑
きっと、書かれるコードも綺麗なんでしょうね。
無駄がなく、短く、スッキリしていそうなイメージです。
PHP、JavaScript、両言語の関係について、なんとなくつかめましたので、
教えて頂いたことを意識しながら、JavaScriptについてもこれから勉強していこうと思います。
こちらでも、どうもありがとうございました。
大変参考になりました。
No.3
- 回答日時:
> どちらの言語でも可能な処理(ブラウザに時刻を表示する等)の場合には、
> 一体どちらを使うべきでしょうか。
質問の本分は
「どちらの言語でも可能な処理」ではなく、
「ブラウザに時刻を表示するにはPHPかJavaScriptか、どちらでやる方がいいですか?」という質問ですか?
そういうことならNo.2の私の発言は私の誤解ですので、すべて無視して下さい。
クライアント(パソコン)の時刻を表示するならJavaScript、
アクセス時のサーバーの時刻を表示するならPHP(サーバーサイドアプリケーション)でなければならないと思います。
まず初めに、私の質問文の書き方がまずかったことをお詫び致します。
私はまだJavaScriptについてよく分かっていないために、
時間表示処理については、PHPとJavaScriptでは完全に等価だと誤解していました。
しかし、実際には、PHPではサーバの時間を、JavaScriptではクライアントの時間を、
それぞれ表示するようなので、両言語で等価である処理の例としては不適切だったと言えます。
誤解を与えるような書き方をしてしまい、申し訳ございませんでした。
私の質問の主旨は、
両言語、どちらを使って処理しても同じような結果が得られるという場合が、
仮に存在したとして(JavaScriptの知識が乏しいため、このようなことを言ってます)、
その場合に、どちらの言語でその処理を行うべきか、
その選択方法について知りたい、ということです。
「仮に存在したとして」という大前提がそもそも崩れるようであれば、
回答は、
「等価な処理はないため、言語選択で迷うなんてケースは存在しない。」
の1つに決まるのだと思いますが、
実際には、そんなことはないだろうと、質問する前の私は思っていたので、
このような質問をさせて頂きました。
ただ、yambejpさんから頂いた回答NO.1の、
「ほとんどの場合、使用用途はことなります。」
の部分により、
私の言う「仮に存在したとして」の大前提は、
回答1発目から、ほぼ完全に崩されそうな状況にあり、
「バカな質問をしてしまったかな、、。」と、
私は思ったのでした。
くどくてすみませんが、
「両言語において、使用用途が等価であるケースが存在しない場合」には、
私の質問は意味を成さなくなりますので…。
No.2
- 回答日時:
> 一体どちらを使うべきでしょうか。
一言で言えば、ケースバイケース、そのままです。
JavaScriptが得意か、PHPが得意かで決めるくらいでもいいんじゃないでしょうか。
Ajaxなら、
HTMLデータの生成をサーバー側で処理するなら、
JavaScriptはdiv.innerHTML=xmlhttp.responseText;で終わらせることになります。
>JavaScriptが得意か、PHPが得意かで決めるくらいでも
好き嫌い、得手不得手で決めちゃって、本当に良いのだろうか、
と疑問に思い、この質問をさせて頂きましたが、
頂いた回答については、
「そうした判断(得手不得手)で決めても良いケースもある」
という理解で、参考にさせて頂きます。
ただ、回答NO.1のお話からすると、
両言語で用途が等価(ほぼ等価、も含め)な処理というのは、実際にはそれほど無いようなので、
得手不得手でチョイスしても良さそうなケースがどの程度あるのか、
ちょっと気になる所ではあります。
No.1
- 回答日時:
>どちらの言語でも可能な処理(ブラウザに時刻を表示する等)の場合
ほとんどの場合、使用用途はことなります。
たとえば、上記の例で言えば、時刻表示をする場合、
phpであればサーバーの時計を表示しますし、javascriptの場合は
クライアントPCのローカル時計で、動く時計などを作る場合には
有効ですが、その時計が合っているかどうかは保障がありません。
考え方としては、サーバーでできることは原則サーバー側でおこなう。
どうしても動的におこないたい処理や、PHPにデータを送る前のチェック
など補助的に使うのがjavascriptです
>ほとんどの場合、使用用途はことなります。
>考え方としては、サーバーでできることは原則サーバー側でおこなう。
そのような感じなのですね~。全く知りませんでした。
参考にさせて頂きます。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- その他(プログラミング・Web制作) WEBアプリ開発に必要な言語 5 2023/06/28 16:57
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript javascript で外部サイトにデータ入力させて自動でボタンを押すことは可能ですか? 1 2023/01/30 16:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP.NET(VB)VBソースからJavas...
-
phpのひな形、フレームワー...
-
読み込み中に「Now Loading」を...
-
入力されたURLから、そのページ...
-
サイト作りについて
-
jsonテキストデータの並び替え...
-
saved from url=(0013)abou
-
大量のデータを表として展開す...
-
【Ajax】改行を含めたデータを...
-
ajaxでhtmlを返して画面に描画…...
-
suEXECとパーミッションの関係...
-
AJAX通信のエラー処理について
-
【JavaScript】confirmのボタン...
-
gifcatの挙動について
-
Shell関数?非同期?
-
アップロードの完了前に容量を...
-
enctype="multipart/form-data"
-
[JavaScript] preven...
-
HTMLでDBからデータを表形式で...
-
8ビットダウンカウンタをVerilo...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP.NET(VB)VBソースからJavas...
-
sleepの負荷
-
PHPでフォームの自動入力できま...
-
ブラウザ閉じたらサーバー処理...
-
JSTLを利用してJavascriptの結...
-
php ob_flushが全く動作しない
-
cakephp2とsmartyの表示が遅い
-
掲示板の荒らし対策
-
読み込み中に「Now Loading」を...
-
呼び出し元のURLを知りたいのです
-
jQueryのAjaxで通信の途中結果...
-
include 再読み込み
-
PHPで一定時間が経過すると処理...
-
携帯でも表示されるカウントダウン
-
PHPでメッセージボックス表示
-
処理中インジケータの表示
-
PHPを用いてPOSTし、リダイレク...
-
10秒毎に同じプログラムを繰り...
-
PHPのプログラムが同時に呼び出...
-
XEONについて
おすすめ情報