一、在客戶端運行腳本
腳本可以在客戶端和服務器端運行,很容易區分客戶端腳本和服務器端腳本,這是完全不同的操作。客戶端腳本是在客戶端計算機上運行的腳本程序。它的運行環境是客戶端的Web瀏覽器;而服務器端腳本是在服務器計算機上運行的腳本程序。它的運行環境是Web服務器軟件。對于是在客戶端還是在服務器端運行腳本這個問題,對于每種類型的腳本,答案是不同的,并且取決于一些基本因素。到目前為止編寫的大多數程序可能都有一個隱含的假設,即程序的每一行都在同一臺計算機上運行。如果腳本在兩臺不同的計算機上運行,則Web 應用程序無法從單個處理器執行。無疑,多個處理器可以同時完成程序的任務,帶來更高的效率。
那么,哪些因素決定了在哪臺計算機上運行特定腳本呢?其中一個主要原則是,如果一個腳本可以在客戶端運行,那么它應該由客戶端來完成。因為客戶端計算機和服務器都為在Web 服務器上執行的計算付費。另一方面,如果計算任務在客戶端計算機上完成,客戶端和服務器都不需要花費太多。基于這種經濟上的考慮,凡是可以下載到客戶端計算機的任務,都應該由客戶端來完成。
例如,在身份驗證的例子中,在將表單中的數據傳輸到服務器之前完成表單中個人資料是否滿足限制規則的驗證。可以想象,如果100個用戶同時向服務器提交表單填寫的信息,如果不是在客戶端而是在服務器端,那么分布在100臺客戶端電腦上的計算時間會相對少很多.客戶端和服務器都樂于這樣做。如果一項任務只能在客戶端完成,則必須使用客戶端腳本來完成。這個道理很明顯。一般來說,只能在客戶端完成的腳本是那些使用僅存在于客戶端瀏覽器中的內部對象的腳本。例如, 用于控制用戶查看的窗口或文檔的對象。其他的腳本可能在客戶端和服務器端都可以運行,所以你可以按照這個原則來決定腳本在哪里運行。二、在服務器端運行腳本
使用服務器端腳本來完成某項任務需要考慮如何使Web應用程序盡可能快地響應。客戶端和服務器計算機之間的Internet 連接通常是一個非常狹窄的通道。如果使用客戶端腳本來完成一項任務意味著用大量的數據填充通道而只節省Web_server 上少量的計算時間,那么Web 應用程序的響應將非常緩慢,例如,當您需要收集數據時來自大型數據庫的信息,雖然可以使用客戶端腳本來操作數據庫和收集信息,但最好使用服務器端腳本,因為這只允許通過HTTP 將那些關鍵和必要的信息發送到服務器連接。客戶。
如果一個任務只能在服務器端完成,那么它必須使用服務器端腳本來完成。如果一個任務需要使用內置對象,這個任務只能在服務器端完成,因為內置對象只存在于服務器端。僅存在于服務器環境中的內置對象,如Session對象,是一種數據對象,其中可以存儲有關用戶會話(two.ion)的信息。只要Web 應用程序中的頁面仍在使用中,信息就可以永久保留。例如,您可以使用Sessi 對象為用戶提供類似于“購物車”的功能。如果Web 應用程序向客戶端提供購物場所。將Session 對象保存在服務3 上后,客戶端有時會獲得一個特殊頁面,其中列出了所有選定的對象。使用服務器端腳本也有安全考慮。有時您可能不想公開腳本代碼。如果在HTML文檔中嵌入客戶端腳本,所有訪問者都可以看到,并使用服務器端腳本將那些需要保密的腳本作為服務器端腳本;將它們存儲在網絡服務器上。
此外,有時腳本代碼可能包含有關Web 應用程序的關鍵信息。如果信息被他人竊取,則可能會攻擊網站。例如,如果信用卡數據庫的計算機名和數據庫名被泄露,那么數據庫服務器就成為一個明顯的外部攻擊目標,Blade 9 就非常危險。任何客戶端腳本都可以被其他人查看和分析,而服務器端腳本在這一點上是足夠安全的。考慮在何處運行腳本的最后一個因素是任務的難度。通常,客戶端系統比服務器小得多,速度也慢得多。因此,在使用客戶端腳本時,需要考慮任務能否在一定的可容忍時間內由客戶端系統完成。例如,最好不要讓客戶端系統去完成需要復雜的人工智能技術的任務,因為這個任務很可能會拖慢客戶端計算機的速度,并且對服務器沒有影響。
用于完成復雜任務的腳本很可能包含大量代碼,這意味著需要通過Internet 向客戶端發送大量額外的文本代碼。
我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!