這個問題有很多圍繞Web討論它的文章,但是鑑於我對web dev的近期工作狀況,我認爲我錯過了幾件作品以獲得完整的圖片。服務器端和客戶端呈現有什麼區別?
我的理解如下:
讓我們假設我們有一個Node.js的服務器和我們使用快遞爲我們的Web應用程序。客戶端呈現是當我沒有在Web瀏覽器中輸入一個URL來創建一個HTTP請求到我的服務器。相反,客戶端請求來自JS腳本(當我使用根路由訪問應用程序時,最初從服務器加載),例如:http://localhost:SOME_PORT/)。因此,假設我的請求是從數據庫中獲取某個用戶的某些信息。例如,JS腳本(使用AJAX)直接對數據庫執行XMLHTTPRequest(比如我通過一個名爲Fetch的按鈕來觸發此腳本),而不是通過服務器,然後客戶端(瀏覽器)將獲得一個響應,並反過來將創建一個HTML文檔並呈現它。與服務器端呈現相反,例如我在瀏覽器中輸入URL,服務器攔截請求,並準備HTML文檔以及請求的數據(如果有),並以瀏覽器的HTML形式發回渲染(因此,服務器端,沒有工作在客戶端完成,但實際顯示頁面)。
這是準確的嗎?我對兩者的理解以及何時使用任何一種風格都缺少什麼?
我不認爲你錯過了很多;將整個事件減少到生成實際HTML代碼的地方是公平的 - 既可以在服務器上,也可以在服務器上發送數據,並讓客戶端將其放入HTML中。至於什麼時候用哪個 - 而不是基於觀點的,我會說。但是如果你請求了很多記錄,那就意味着使用服務器端渲染,你會發送很多重複的HTML ......所以在這種情況下,發送純數據,讓客戶端進行渲染可能更好。 – CBroe