1. 程式人生 > >js與後臺互動詳述(入門篇)

js與後臺互動詳述(入門篇)

很多新手前端在初期學習的時候往往把注意力放在如何編寫頁面,如何編寫效果上,群裡有個朋友問我js是如何與後臺互動的,我簡單的說一下。

  首先需要知道兩個東西,一個是客戶端,一個是伺服器,客戶端其實就是我們在上網時候使用的機器,大部分情況下這個客戶端就是我們的電腦,包括臺式電腦,膝上型電腦,手機,平板之類的。那麼伺服器是什麼?伺服器其實也是電腦,準確的說伺服器是效能比較強大的電腦,正常情況下一臺伺服器可以連續半年甚至一年不關機,連續執行,這個技能我們家用電腦大多做不到。正是因為伺服器可以保持長時間的執行,從而保證我們放在伺服器上檔案可以隨時都被訪問到.

  現在來看一下伺服器和客戶端之間的聯絡,這裡就以網站為基礎,通俗的解釋一下。我們訪問網站大多數使用的都是瀏覽器,通過在位址列裡面寫下域名,按下回車就可以訪問到我們想要訪問的網站,那麼這個具體的過程肯定不是那麼簡單,我們在位址列中寫下網址以後,按下回車,這個時候瀏覽器首先會訪問自己所在的電腦上的host檔案,檢視host檔案中是否記錄有我們在位址列中輸入的域名,如果有,則找到與之對應的ip,訪問去了。如果沒有,它就要去到一個叫做dns的系統中,這個dns是存在於公網中的,他的作用就是儲存許多域名和ip(真實的dns系統比這個複雜的多,這裡只是方便理解簡述一下),他找到dns以後,把域名告訴dns,讓dns去查一下,看看有沒有與之對應的ip,如果查到了,就會拿著ip去找那個網站去了!!這裡說一下,ip實際上可以理解為地址,是我們存放程式時候標記的地址。域名只是為了幫助我們更好的記住,實際上真正要找到網站還是要靠ip。

  到此為止,我們已經找到了與這個ip對應的伺服器,那麼接下來解釋兩者互相對話啦,瀏覽器告訴伺服器我要看首頁,伺服器回答好,然後把首頁交給瀏覽器,去看吧!!這裡我打了一個比方,事實上這個過程都是建立在網路通訊協議上的,其中有一個最常用的就是http協議,瀏覽器與伺服器之間一切交流都是建立在這個協議之上的,這裡我簡單的講一下這個協議吧,http協議分為兩部分,分別是請求部分和響應部分,請求部分是又瀏覽器發出的,伺服器接受到以後讀取協議內容,然後發出響應,瀏覽器接受到響應的內容,並把它展示到電腦上。http協議中的請求部分分為請求行,請求頭資訊,請求訊息體三部分,請求行包括我們想要訪問的域名,協議等級,請求訊息頭包括具體訪問的檔案,連線長度,瀏覽器核心資訊等,訊息體則是瀏覽器傳送給伺服器上的具體資料,這個資料只有在傳送方式為post的情況才會出現在訊息體上,如果是get方式,則出現在位址列中。伺服器收到相關請求以後,開始分析具體要幹什麼,然後去執行,執行完成以後吧資料全部返回,相應部分就不詳細說明了。

  還要注意一件事情,那就是伺服器收到請求以後做的事情是如何完成的,我以PHP程式為例。假如伺服器收到請求需要訪問網站首頁,那麼首先就會去調取後臺對應的首頁檔案,然後開始解析這個檔案,解析的過程中,PHP就發揮作用了,比如說,頁面中的資料都是依靠它來進去讀取的,假如首頁中有一塊地方需要展示出今天的最新新聞,那麼PHP就會呼叫相關程式,然後去訪問資料庫,把對應的資料從資料庫中取出來,然後展示到頁面中,以此類推,其他的的資料都是這樣搞出來的。當然了,PHP還會做很多其他事情啊,比如判斷登入狀態,檢測ip之類的,最後當PHP把所有要做的事情都做完以後,最後就是把處理好的檔案返回給瀏覽器了,這裡注意一下,服務返回給瀏覽器的其實就是已經生成好的靜態頁面了,裡面沒有一行後臺程式碼,瀏覽器接收到這個返回到資料,然後開始逐行解析,最後展示給我們看。

  以上就是前後臺互動流程。至於Js與後臺互動,說白了,就是依靠js像後臺傳送資料,然後接受伺服器返回的資料就是了。這裡要說到一個技術就是ajax,其實整體的流程都是一樣的,我們通過js的事件觸發ajax,像伺服器傳送相關資料,伺服器得到資料,處理完成以後返回給我們對應的資料,js可以獲取到這個資料,然後該怎麼處理就怎麼處理,這個和我們上面說的流程基本一樣,區別就是通過 js傳送請求可以達到無重新整理的效果,正常我們訪問一個頁面,伺服器都是整個頁面的返回給我們,如果是通過ajax的話,只會返回我們想要的資料,這樣,是不會重新整理頁面的,加快了速度,減少流量的浪費,還有很多好處的,不多說了。(如果不瞭解ajax,那麼可能需要首先學習下ajax哦!!)

  這篇文章沒有一句程式碼,說的也不是很專業,只能作為入門來了解,有問題的地方,請大家多多指教!