第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

客戶端和服務器端編程有什么區(qū)別?

客戶端和服務器端編程有什么區(qū)別?

郎朗坤 2019-05-20 15:41:44
我有這個代碼:<script type="text/javascript">     var foo = 'bar';     <?php         file_put_contents('foo.txt', ' + foo + ');     ?>     var baz = <?php echo 42; ?>;     alert(baz);</script>為什么這不會在我的文本文件中寫入“bar”,但警告“42”?注意:此問題的早期修訂明確是關于服務器上的PHP和客戶端上的JavaScript。問題和解決方案的本質(zhì)是相同的任何對當一個客戶端上運行的語言和其他服務器上。當你看到有關特定語言的答案時,請考慮到這一點。
查看完整描述

4 回答

?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

您的代碼分為兩個完全獨立的部分,即服務器端和客戶端。


                    |

               ---------->

              HTTP request

                    |

+--------------+    |    +--------------+

|              |    |    |              |

|    browser   |    |    |  web  server |

| (JavaScript) |    |    |  (PHP etc.)  |

|              |    |    |              |

+--------------+    |    +--------------+

                    |

  client side       |      server side

                    |

               <----------

          HTML, CSS, JavaScript

                    |

雙方通過HTTP請求和響應進行通信。PHP在服務器上執(zhí)行并輸出一些HTML和JavaScript代碼,這些代碼作為響應發(fā)送到解釋HTML并執(zhí)行JavaScript的客戶端。一旦PHP完成輸出響應,腳本就會結束,在新的HTTP請求進入之前,服務器上什么都不會發(fā)生。


示例代碼執(zhí)行如下:


<script type="text/javascript">

    var foo = 'bar';

    <?php

        file_put_contents('foo.txt', ' + foo + ');

    ?>


    var baz = <?php echo 42; ?>;

    alert(baz);

</script>

第1步,PHP執(zhí)行<?php ?>標記之間的所有代碼。結果是這樣的:


<script type="text/javascript">

    var foo = 'bar';


    var baz = 42;

    alert(baz);

</script>

該file_put_contents呼叫并沒有導致任何東西,它只是寫了“+富+”到文件中。該<?php echo 42; ?>調(diào)用導致輸出“42”,現(xiàn)在該代碼曾經(jīng)是該代碼的位置。


生成的HTML / JavaScript代碼現(xiàn)在發(fā)送到客戶端,在那里進行評估。該alert呼叫工作,而foo變量沒有任何地方使用。


在客戶端甚至開始執(zhí)行任何JavaScript之前,所有PHP代碼都在服務器上執(zhí)行。JavaScript可以與之交互的響應中沒有任何PHP代碼。


要調(diào)用某些PHP代碼,客戶端必須向服務器發(fā)送新的HTTP請求。這可以通過三種可能的方法之一發(fā)生:


一個鏈接,導致瀏覽器加載新頁面。

表單提交,將數(shù)據(jù)提交到服務器并加載新頁面。

一個AJAX請求,它是一種Javascript技術,可以向服務器發(fā)出常規(guī)HTTP請求(如1.和2.將),但不會離開當前頁面。

這是一個更詳細地概述這些方法的問題

您還可以使用JavaScript使瀏覽器使用window.location或提交表單打開新頁面,模擬可能性1.和2。


查看完整回答
反對 回復 2019-05-20
?
素胚勾勒不出你

TA貢獻1827條經(jīng)驗 獲得超9個贊

您的Javascript將在客戶端上執(zhí)行,而不是在服務器上執(zhí)行。這意味著foo不在服務器端進行評估,因此無法將其值寫入服務器上的文件。

考慮此過程的最佳方式就是您動態(tài)生成文本文件。您生成的文本只有在瀏覽器解釋后才會成為可執(zhí)行代碼。只<?php在服務器上評估您在標簽之間放置的內(nèi)容。

順便說一句,養(yǎng)成在HTML或Javascript中嵌入隨機PHP邏輯片段的習慣會導致嚴重錯綜復雜的代碼。我說的是痛苦的經(jīng)歷。


查看完整回答
反對 回復 2019-05-20
  • 4 回答
  • 0 關注
  • 2313 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號