クライアント側プログラミングとサーバー側プログラミングの違いは何ですか?
P粉757640504
P粉757640504 2023-08-22 20:26:21
0
2
609
<p>次のコードがあります:</p> <pre class="brush:php;toolbar:false;"><script type="text/javascript"> var foo = 'バー'; <?php file_put_contents('foo.txt', ' foo '); ?> var baz = <?php echo 42; ?>; アラート(バズ); </script></pre> <p>このコードではテキスト ファイルに「bar」が書き込まれず、「42」が表示されるのはなぜですか? </p>
<p>注: この質問の以前のバージョンでは、サーバー上の PHP とクライアント上の JavaScript について明示的に取り上げられていました。ある言語がクライアントで実行され、別の言語がサーバーで実行される場合 (言語が同じであっても)、問題の性質と解決策は同じです。特定の言語に関する回答を参照する場合は、これを考慮してください。 </p>
P粉757640504
P粉757640504

全員に返信(2)
P粉111927962

PHP コードが JavaScript コード内で機能しない理由を判断するには、クライアント側サーバー側##を理解する必要があります。 # は言語とその仕組みです。

サーバーサイド言語 (PHP など)

: データベースからレコードを取得し、ステートレス HTTP接続で状態を維持します。多くの操作にはセキュリティが必要です。これらはサーバー上に存在し、これらのプログラムのソース コードがユーザーに公開されることはありません。 したがって、@deceze が言ったように、サーバー側の言語が HTTP リクエストを処理して処理することが簡単にわかります。

PHP はサーバー上で実行され、HTML と、場合によっては JavaScript コードを出力し、応答が送信されます。クライアントでは、HTML が解釈され、JavaScript が実行されます。

一方、

クライアント側言語 (JavaScript など)

はブラウザー内に存在し、ブラウザー内で実行されます。 クライアントサイド スクリプト 一般に、サーバー側ではなくユーザーの Web ブラウザによって Web 上で実行されるコンピュータ プログラムを指します。 JavaScript はユーザーに表示され、簡単に変更できるため、セキュリティ上の問題から JavaScript に依存することはできません。

したがって、サーバー上で

HTTP

リクエストを行うと、サーバーはまず PHP ファイルを注意深く読み取って、実行する必要のあるタスクがあるかどうかを確認し、クライアントに応答を送信します。繰り返しになりますが、@deceze が述べたように、*PHP が応答の出力を完了すると、スクリプトは終了し、新しい HTTP リクエストが受信されるまでサーバー上では何も起こりません。 * では、PHP を呼び出す必要がある場合はどうすればよいでしょうか?それは、ページをリロードするか、AJAX 呼び出しを使用するかなど、必要な方法によって異なります。

これを行うには、ページをリロードし、
    HTTP
  1. リクエストを送信します。 JavaScript を使用して AJAX 呼び出しを行うことができます。これにはページをリロードする必要はありません
  2. 良い読み物:

Wikipedia: サーバーサイド スクリプティング
  1. Wikipedia: クライアント スクリプト
  2. うちはマダラ: クライアントサイドとサーバーサイドのプログラミングの違い
いいねを押す +0
P粉103739566

コードは、サーバー側クライアント側の 2 つの完全に別個の部分に分割されます。

リーリー

2 つの部分は HTTP リクエストとレスポンスを介して通信します。 PHP はサーバー上で実行され、HTML コードと場合によっては JavaScript コードを出力します。このコードは応答としてクライアントに送信され、そこで HTML が解釈されて JavaScript が実行されます。 PHP が応答の出力を完了すると、スクリプトは終了し、新しい HTTP リクエストが受信されるまでサーバー上では何も起こりません。

サンプルコードの実行手順は以下のとおりです。

リーリー

最初のステップでは、PHP は <?php ?> タグ間のすべてのコードを実行します。結果は次のとおりです:

リーリー

file_put_contents呼び出しは結果を生成せず、ファイルに「foo」を書き込むだけです。そして <?php echo 42; ?>呼び出しの結果、「42」が出力され、これは元のコードの場所にあります。

結果の HTML/JavaScript コードがクライアントに送信され、そこで評価されます。 alert 呼び出しは機能し、foo 変数はどこにも使用されていません。

すべての PHP コードは、クライアントが JavaScript の実行を開始する前にサーバー上で実行されます。応答には、JavaScript と対話するための PHP コードは残されていません。

PHP コードを呼び出すには、クライアントは新しい HTTP リクエストをサーバーに送信する必要があります。これは、次の 3 つの方法のいずれかで実現できます。

    リンクを使用すると、ブラウザに新しいページが読み込まれます。
  1. フォーム送信。データをサーバーに送信し、新しいページを読み込みます。
  2. AJAX リクエスト。これは、現在のページから離れることなく、サーバーに対して通常の HTTP リクエスト (1 および 2 と同様) を行うために使用される JavaScript テクノロジです。

これらの方法の詳細を概説する問題は次のとおりです

JavaScript を使用して、

window.location を使用してブラウザに新しいページを開かせるか、フォームを送信して、可能性 1 と 2 をシミュレートすることもできます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート