design pattern MVC 與 Web MVC

  • Web MVC
  • MVC

MVC

最早MVC設計模式是指桌面應用程式的一種開發方式,可以想像兩種情境。

  • user 操作頁面通知Controller,Controller改變畫面。
  • user 操作頁面通知Controller,Controller異動資料改變Model,Model通知頁面View變動,V查詢向Model查詢資料改動。

Web MVC

Web MVC亦稱為Model 2,而Model 2最早出現在1998年JSP規格書0.92版中,然而由於HTTP的先天限制Stateless(無狀態),使得Model無法通知View如上的虛線線段,以下圖片截自wiki JSP model 2 architecture 下面的 How Struts Implements Model 2 (The Origins of Model 1/Model 2)

而以Server side render 方式與上圖最相近,而Client side render的方式則可以補足Model無法通知View的這一塊(Server push),可以透過AJAX、WebSocket的技術達到。當前的網頁開也有很多都是採混搭的方式開發。

  • Server side render指由後端直接回傳整份 HTML
  • Client side render指的就是當前端拿到資料以後,才用 JavaScript 動態的把那些內容填到網頁上面

Reference