1. 程式人生 > >淺談服務端指令碼和客戶端指令碼

淺談服務端指令碼和客戶端指令碼

    ASP.NET是一種嵌入網頁中的指令碼可由因特網伺服器執行的伺服器端指令碼技術。所以在學習ASP.NET程式設計之前,我覺得我們有必要來了解一下指令碼技術。那麼指令碼究竟是什麼呢?

一、什麼是指令碼、指令碼語言? 

    指令碼(Script)是使用一種特定的描述性語言、依據一定的格式編寫的可執行檔案,又稱作巨集或批處理檔案。通俗地講,其實指令碼是由一系列的bind和alias等命令的集合,如同一般的程式,指令碼可以將一個值賦給一個變數,可以命令WEB 伺服器傳送一個值到客戶瀏覽器,還可以將一系列命令定義成一個過程。可以把集合存放在一個獨立的檔案然後在需要的時候執行,方便CS使用。 

    指令碼語言:是一種介乎於HTML 和諸如 JAVA 、 Visual Basic 、 C++等程式語言之間的一種特殊的語言,儘管它更接近後者,但它卻不具有程式語言複雜、嚴謹的語法和規則。

二、指令碼作用 

    指令碼通常可以由應用程式臨時呼叫並執行。各類指令碼目前被廣泛地應用於網頁設計中,因為指令碼不僅可以減小網頁的規模和提高網頁瀏覽速度,而且可以豐富網頁的表現,如動畫、聲音等。

三、指令碼的分類: 


客戶端指令碼與伺服器端指令碼各有其優缺點: 

1.客戶端指令碼

    當客戶端通過客戶瀏覽器傳送HTTP請求時,web伺服器將HTML文件部分和指令碼部分返回給客戶端瀏覽器,在客戶端瀏覽器中解釋執行並及時更新頁面,指令碼處理工作全部在客戶端瀏覽器執行完成。 

    優點: 減輕伺服器負荷,同時增加頁面的反應速度。

    缺點:瀏覽器差異性導致頁面差異

    支援的語言: JavaScript JScript VBScript 

2.服務端指令碼

    當用戶通過瀏覽器傳送HTTP請求時,Web伺服器執行指令碼,並將執行結果與Web頁面的HTML結合返回至客戶端瀏覽器,指令碼處理工作全部在伺服器端完成。 

    優點:減少瀏覽器帶來的執行結果差異,提高頁面的穩定性。

    缺點:增加了伺服器的負荷,同時客戶端反應速度慢。

    支援的語言:PHP、JSP、ASP、ASP.NET

三、聯絡

    伺服器指令碼是應用於提交和處理表單,實現動態內容而出現的。伺服器指令碼將底層抽象出邏輯,把框架相同,但是內容不同的頁面進行綜合。最重要的是將邏輯處理與資料分開。 而通常伺服器的資料都是存放在資料庫中的,每一次都是需要資料庫的連結,往往資料庫的連線都比資料查詢更加耗時。為了避免這種情況,網頁設計者可以將簡單的邏輯抽象出來,比如一次性的讀入資料,讓後將資料存入到客戶端中。這樣下次就不用重新建立連線,我們可以從自己的機子上得到資料。根本不需要伺服器頻繁通訊。 

    由此,他們的區別很明顯,伺服器指令碼運行於伺服器之上,你永遠看不到伺服器的內容,得到的只有指令碼直譯器發回的HTML程式碼,瀏覽器對他全盤接收,客戶端脫離伺服器執行,不直接執行資料庫操作,他實現了客戶端上的簡單邏輯。 

    客戶端指令碼的目的很明顯,既避免了重複冗餘的連結,又能緩解伺服器的壓力(不用要求多次查詢資料庫)。