dポイントプレゼントキャンペーン実施中!

javascriptとPHPの使い分けについてにお聞きします。

ソースを隠すことのできるPHPと、
クライアントサイドスクリプトの強みを持つjavascript。

それぞれの特長を活かし、適材適所に使い分ける、
ということは分かっているつもりです。

その上でお聞きしたいことがあります。

どちらの言語でも可能な処理(ブラウザに時刻を表示する等)の場合には、
一体どちらを使うべきでしょうか。

考え方の指針をどなたかお与え下さい。

ソースを隠すことに重きを置かない場合、
処理速度の速さなど、パフォーマンス面で優れた方を、
ケースバイケースでチョイスしていけたらと思っています。

A 回答 (4件)

サーバサイドとクライアントサイド、というところになりますが、


JavascriptはアクセスしてきたブラウザがJavascriptの実行エンジンにて処理を行いますので、サーバに負荷がかかりません。

例えば、郵便番号を入れて、該当する住所を検索し自動的に挿入されるスクリプトを考えた場合、
http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2 …
こちらのライブラリのようにJavascript(+JSON)でやるのか、「住所検索ボタン」をかなんかを設置して、郵便番号をPOSTしてやって、サーバに保存した郵便番号一覧からサーチしてページを更新するのか。
どちらの処理も負荷としては大差ないですが、直感的かそうでないか、というところで見てみれば、大分差があるように思えます。

実際に目的の処理結果としては「使用用途が等価であるケース」な場合はあると思いますが、ことインターフェイスとしての見せ方に関しては、等価であるケースは少ないと思います。

また、等価な場合があったとしても、その動作が複雑であった場合、車輪の再開発を行わず、何らかのライブラリを使うと思いますが、より優れたライブラリがPHPなのか、Javascriptなのかで選択も変わると思います。

とりあえず、今回のご質問に関しては、実際に「仕様用途がほぼ等価であるケース」に直面した際に、もう一度質問しなおしたほうが良いと思います。
    • good
    • 0
この回答へのお礼

こんばんは、hogehoge78さん。

>Javascriptの実行エンジンにて処理を行いますので、サーバに負荷がかかりません。

ということは、ページ出力の速さは、
クライアントサイドのPCの処理性能に依存することになりますよね。
どこかで読んだ記憶がありますが、それを思い出すきっかけとなりました。


>どちらの処理も負荷としては大差ないですが、直感的かそうでないか、というところで見てみれば、大分差があるように思えます。

とてもよくわかりました。
さすがだなぁと感心してしまいました。


>実際に目的の処理結果としては「使用用途が等価であるケース」な場合はあると思いますが、ことインターフェイスとしての見せ方に関しては、等価であるケースは少ないと思います。

郵便番号の例を受けて、確かに、そのような気が私もしてきました。


>また、等価な場合があったとしても、その動作が複雑であった場合、車輪の再開発を行わず、何らかのライブラリを使うと思いますが

ライブラリを使うべき処理が発生したとして、
その処理において、どちらの言語のライブラリを使うのが、より適当か、という判断基準
も確かにありますね。

もっとも、まだ、ライブラリを利用して~なんたら~
なんていう段階にはない私ですが。苦笑

現在、私、車輪の再開発中です。笑
コーディングの練習も兼ねまして。

>とりあえず、今回のご質問に関しては、実際に「仕様用途がほぼ等価であるケース」に直面した際に、もう一度質問しなおしたほうが良いと思います。

はい、そうさせて頂きます。^^
いや~、毎回、惚れ惚れしてしまいます。笑
きっと、書かれるコードも綺麗なんでしょうね。
無駄がなく、短く、スッキリしていそうなイメージです。

PHP、JavaScript、両言語の関係について、なんとなくつかめましたので、
教えて頂いたことを意識しながら、JavaScriptについてもこれから勉強していこうと思います。

こちらでも、どうもありがとうございました。
大変参考になりました。

お礼日時:2009/08/21 21:57

> どちらの言語でも可能な処理(ブラウザに時刻を表示する等)の場合には、


> 一体どちらを使うべきでしょうか。

質問の本分は
「どちらの言語でも可能な処理」ではなく、
「ブラウザに時刻を表示するにはPHPかJavaScriptか、どちらでやる方がいいですか?」という質問ですか?

そういうことならNo.2の私の発言は私の誤解ですので、すべて無視して下さい。

クライアント(パソコン)の時刻を表示するならJavaScript、
アクセス時のサーバーの時刻を表示するならPHP(サーバーサイドアプリケーション)でなければならないと思います。
    • good
    • 0
この回答へのお礼

まず初めに、私の質問文の書き方がまずかったことをお詫び致します。

私はまだJavaScriptについてよく分かっていないために、
時間表示処理については、PHPとJavaScriptでは完全に等価だと誤解していました。

しかし、実際には、PHPではサーバの時間を、JavaScriptではクライアントの時間を、
それぞれ表示するようなので、両言語で等価である処理の例としては不適切だったと言えます。
誤解を与えるような書き方をしてしまい、申し訳ございませんでした。

私の質問の主旨は、
両言語、どちらを使って処理しても同じような結果が得られるという場合が、
仮に存在したとして(JavaScriptの知識が乏しいため、このようなことを言ってます)、
その場合に、どちらの言語でその処理を行うべきか、
その選択方法について知りたい、ということです。

「仮に存在したとして」という大前提がそもそも崩れるようであれば、
回答は、
「等価な処理はないため、言語選択で迷うなんてケースは存在しない。」
の1つに決まるのだと思いますが、
実際には、そんなことはないだろうと、質問する前の私は思っていたので、
このような質問をさせて頂きました。

ただ、yambejpさんから頂いた回答NO.1の、
「ほとんどの場合、使用用途はことなります。」
の部分により、
私の言う「仮に存在したとして」の大前提は、
回答1発目から、ほぼ完全に崩されそうな状況にあり、

「バカな質問をしてしまったかな、、。」と、
私は思ったのでした。

くどくてすみませんが、
「両言語において、使用用途が等価であるケースが存在しない場合」には、
私の質問は意味を成さなくなりますので…。

お礼日時:2009/08/17 09:11

> 一体どちらを使うべきでしょうか。


一言で言えば、ケースバイケース、そのままです。
JavaScriptが得意か、PHPが得意かで決めるくらいでもいいんじゃないでしょうか。

Ajaxなら、
HTMLデータの生成をサーバー側で処理するなら、
JavaScriptはdiv.innerHTML=xmlhttp.responseText;で終わらせることになります。
    • good
    • 0
この回答へのお礼

>JavaScriptが得意か、PHPが得意かで決めるくらいでも

好き嫌い、得手不得手で決めちゃって、本当に良いのだろうか、
と疑問に思い、この質問をさせて頂きましたが、
頂いた回答については、
「そうした判断(得手不得手)で決めても良いケースもある」
という理解で、参考にさせて頂きます。

ただ、回答NO.1のお話からすると、
両言語で用途が等価(ほぼ等価、も含め)な処理というのは、実際にはそれほど無いようなので、
得手不得手でチョイスしても良さそうなケースがどの程度あるのか、
ちょっと気になる所ではあります。

お礼日時:2009/08/16 23:15

>どちらの言語でも可能な処理(ブラウザに時刻を表示する等)の場合



ほとんどの場合、使用用途はことなります。
たとえば、上記の例で言えば、時刻表示をする場合、
phpであればサーバーの時計を表示しますし、javascriptの場合は
クライアントPCのローカル時計で、動く時計などを作る場合には
有効ですが、その時計が合っているかどうかは保障がありません。

考え方としては、サーバーでできることは原則サーバー側でおこなう。
どうしても動的におこないたい処理や、PHPにデータを送る前のチェック
など補助的に使うのがjavascriptです
    • good
    • 0
この回答へのお礼

>ほとんどの場合、使用用途はことなります。
>考え方としては、サーバーでできることは原則サーバー側でおこなう。

そのような感じなのですね~。全く知りませんでした。
参考にさせて頂きます。
どうもありがとうございました。

お礼日時:2009/08/16 22:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!