前端和后台的关系
最近初步學習了node js,在練習了一個注冊登錄頁面的過程中,我思考了一些問題。
1.前端和后臺,在一個web中分別承擔了什么任務?
前端包括:靜態頁面的呈現、js功能的實現、以及向后臺發送數據(通過ajax)。
后臺:接收前端發送來的請求、判斷是哪種請求,如果是文件請求發送文件回前端;如果是數據請求,處理數據,再返回給前臺處理結果。
2.當瀏覽器輸入網址后,前端和后臺分別執行了什么操作?
瀏覽器將自動發送文件請求給后臺,后臺處理后將文件返回給前臺,前端接收后,瀏覽器生成dom樹、css樹、js樹,全部創建好之后開始渲染。靜態界面加載完之后呈現給用戶,用戶進行注冊登陸的操作,將操作數據(用戶名、密碼)發送給后臺。
3.前端思維和后臺思維(前端,頁面為主體,一切圍繞頁面,后臺以單個請求為單位)。
前端:是整體的思維,以整個頁面的布局(dom、css)、作用(js)為主要思路進行自己的處理。
后臺:以單個的請求為單位進行出來。主要做的是,前端來一個請求后臺處理該請求然后做出響應,再來再處理響應,流程是固定的,差異體現在處理過程上。
4.前后端分離有什么好處?
使前端處理數據更簡潔,不用對數據進行操作,直接接收處理好的就可以。
5.后臺的異步和如何處理異步?
- 在get和post兩種發送數據的方法中,
都有req.on(‘end’,function(){}),而
get:get信息都在url里,信息一次性全部發完,不存在等待的狀況,但req.on函數是在系統里默認的,所以(即使不在get里手動添加)仍然是執行的,但一次性發完了,所以不存在異步的情況,是同步的。
post:post信息是大量的,在send(data)里面發送,需要等待data一段一段的全部發完,在等待req.on函數全部接收完信息之前,后面的代碼就停在那里等待上面函數接受完,所以這時就產生了異步,會將接收的過程req.on放入序列中等待執行,后續代碼繼續加載。 - 這樣情況下的異步會導致什么問題呢?
數據還未解析就使用,會導致數據為undefined。 - 如何解決異步的問題呢?
解決很簡單,只需要將后續使用數據操作的代碼放進req.on(‘end’,function(){})函數里就可以了。
總結
- 上一篇: Python实现自动控制登录网页
- 下一篇: 2017年html5行业报告,云适配发布