クライアント側プログラミングとサーバー側プログラミングの違いは何ですか?
P粉757640504
2023-08-22 20:26:21
<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>
PHP コードが JavaScript コード内で機能しない理由を判断するには、クライアント側と サーバー側##を理解する必要があります。 # は言語とその仕組みです。
サーバーサイド言語 (PHP など): データベースからレコードを取得し、ステートレス HTTP接続で状態を維持します。多くの操作にはセキュリティが必要です。これらはサーバー上に存在し、これらのプログラムのソース コードがユーザーに公開されることはありません。 したがって、@deceze が言ったように、サーバー側の言語が HTTP リクエストを処理して処理することが簡単にわかります。
PHP はサーバー上で実行され、HTML と、場合によっては JavaScript コードを出力し、応答が送信されます。クライアントでは、HTML が解釈され、JavaScript が実行されます。一方、
クライアント側言語 (JavaScript など)はブラウザー内に存在し、ブラウザー内で実行されます。 クライアントサイド スクリプト 一般に、サーバー側ではなくユーザーの Web ブラウザによって Web 上で実行されるコンピュータ プログラムを指します。 JavaScript はユーザーに表示され、簡単に変更できるため、セキュリティ上の問題から JavaScript に依存することはできません。
したがって、サーバー上で
HTTPリクエストを行うと、サーバーはまず PHP ファイルを注意深く読み取って、実行する必要のあるタスクがあるかどうかを確認し、クライアントに応答を送信します。繰り返しになりますが、@deceze が述べたように、*PHP が応答の出力を完了すると、スクリプトは終了し、新しい HTTP リクエストが受信されるまでサーバー上では何も起こりません。 * では、PHP を呼び出す必要がある場合はどうすればよいでしょうか?それは、ページをリロードするか、AJAX 呼び出しを使用するかなど、必要な方法によって異なります。
HTTP- リクエストを送信します。
JavaScript を使用して AJAX 呼び出しを行うことができます。これにはページをリロードする必要はありません
- 良い読み物:
コードは、サーバー側とクライアント側の 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 つの方法のいずれかで実現できます。
リンクを使用すると、ブラウザに新しいページが読み込まれます。-
フォーム送信。データをサーバーに送信し、新しいページを読み込みます。 -
- AJAX リクエスト。これは、現在のページから離れることなく、サーバーに対して通常の HTTP リクエスト (1 および 2 と同様) を行うために使用される JavaScript テクノロジです。
これらの方法の詳細を概説する問題は次のとおりです
JavaScript を使用して、window.location
を使用してブラウザに新しいページを開かせるか、フォームを送信して、可能性 1 と 2 をシミュレートすることもできます。