從指令碼淺談CS網路通訊模式
本文主要為:CS網路通訊模式中指令碼的作用做如下解析。
關於“指令碼”“客戶端指令碼語言”“服務端指令碼語言”的特點、優缺點、關係,可以由下圖得知:
一、指令碼?作用?
指令碼Scrip/巨集/批處理檔案,簡單理解為是一種描述性語言的可執行檔案。接近自然語言。使用純文字儲存,內容時一條條的文字命令,這些文字命令是我們可以看到的(如可以用記事本開啟檢視、編輯)。不經編譯而是解釋執行,利於快速開發或一些輕量的控制。一般的指令碼語言的執行只同具體的解釋執行器有關,所以只要系統上有相應語言的解釋程式就可以做到跨平臺。指令碼是含有bind和alias等命令的集合的獨立的檔案,需要時執行,方便CS使用。
二、CS網路通訊模式
瀏覽器作為客戶端,在點選連結或者輸入地址時,向目的主機發送HTML,FTP等等服務請求,然後目的主機根據請求型別,請求內容給予響應。
(一)客、服指令碼的聯絡:
伺服器指令碼應於提交和處理表單,實現動態內容。伺服器指令碼從底層抽象出邏輯,把框架相同但是內容不同的頁面綜合。最重要的是將邏輯處理與資料分開。多使用者提交一個請求,享用共同邏輯處理方式,但由於提交的表單不同,相應處理也會不同,於是返回內容也就不同。
伺服器的資料都是存放在資料庫中的,每一次查詢都是需要資料庫的連結,往往資料庫連結比資料庫查詢更加費時。為了避免這種情況,網頁設計者可以將簡單的邏輯抽象出來,比如一次性讀入整體的資料,然後將資料存入客戶端(瀏覽器)的程序當中,這樣下次就不用重新建立連結,我可以從自己機子上得到資料。根本不需要伺服器頻繁通訊。基於此,客戶端指令碼語言應運而生,它可直接嵌入到HTML頁面中,既避免了重複冗餘的連結,有能緩解伺服器的壓力(你不用要求伺服器多次查詢資料庫),及時響應使用者的事件,大大提高頁面反應速度。
(二)客、服指令碼的區別:
1、伺服器指令碼:
執行環境:Web伺服器(正在瀏覽,享受服務的)
特點:當用戶通過客戶端瀏覽器傳送HTTP請求時,Web伺服器執行指令碼,並將結果(你看不到伺服器指令碼的內容)與Web頁面的HTML部分結合返回至客戶端瀏覽器,指令碼處理工作全部在伺服器端完成。是當客戶端向伺服器提出要求後,伺服器將這些指令碼先執行後,得到的結果才傳送到客戶端來.這些指令碼程式碼不會跑到客戶端那裡.
優點:減少了由於瀏覽器差異帶來的執行結果差異,提高頁面穩定性
缺點:增加伺服器負擔,客戶端反應速度慢。
主要語言:PHP,JSP,ASP,Perl,LiveWire
2、客戶端指令碼:
執行環境:客戶端瀏覽器(正在瀏覽,享受服務的)
特點:當用戶通過客戶端瀏覽器傳送HTTP請求時,Web伺服器將HTML文件部分+指令碼部分返回到客戶端瀏覽器,在客戶端瀏覽器中解釋執行並及時更新頁面,指令碼處理工作全部在客戶端瀏覽器中完成的。都是瀏覽者先將指令碼下載到客戶的機器上後才執行的,指令碼程式碼將會停留在瀏覽者的機器裡面.客戶端指令碼脫離伺服器執行,不直接執行資料庫操作。它實現了客戶端上的簡單邏輯。
優點:減輕伺服器負擔,同時增加頁面的反應速度。
缺點:瀏覽器差異性導致的頁面差異問題。
主要語言:JavaScript,JScript,VBScript