MVC框架
MVC全名是Model View Controller骄酗,是模型(model)-視圖(view)-控制器(controller)的縮寫屁药,一種軟件設計典范,用一種業(yè)務邏輯宿崭、數(shù)據(jù)释牺、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面微服,在改進和個性化定制界面及用戶交互的同時四濒,不需要重新編寫業(yè)務邏輯。MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入职辨、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中盗蟆。
MVC開始是存在于桌面程序中的,M是指業(yè)務模型舒裤,V是指用戶界面喳资,C則是控制器,使用MVC的目的是將M和V的實現(xiàn)代碼分離腾供,從而使同一個程序可以使用不同的表現(xiàn)形式仆邓。比如一批統(tǒng)計數(shù)據(jù)可以分別用柱狀圖、餅圖來表示伴鳖。C存在的目的則是確保M和V的同步节值,一旦M改變,V應該同步更新榜聂。?[1-2]
模型-視圖-控制器(MVC)是Xerox PARC在二十世紀八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設計模式搞疗,已被廣泛使用。后來被推薦為Oracle旗下Sun公司Java EE平臺的設計模式须肆,并且受到越來越多的使用ColdFusion和PHP的開發(fā)者的歡迎匿乃。模型-視圖-控制器模式是一個有用的工具箱,它有很多好處豌汇,但也有一些缺點幢炸。?
MVC 編程模式
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創(chuàng)建 Web 應用程序的模式:?[1]
Model(模型)表示應用程序核心(比如數(shù)據(jù)庫記錄列表)。
View(視圖)顯示數(shù)據(jù)(數(shù)據(jù)庫記錄)拒贱。
Controller(控制器)處理輸入(寫入數(shù)據(jù)庫記錄)宛徊。
MVC 模式同時提供了對 HTML佛嬉、CSS 和 JavaScript 的完全控制。
Model(模型)是應用程序中用于處理應用程序數(shù)據(jù)邏輯的部分闸天。
通常模型對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)巷燥。
View(視圖)是應用程序中處理數(shù)據(jù)顯示的部分。
通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的号枕。
Controller(控制器)是應用程序中處理用戶交互的部分缰揪。
通常控制器負責從視圖讀取數(shù)據(jù)葱淳,控制用戶輸入钝腺,并向模型發(fā)送數(shù)據(jù)。
MVC 分層有助于管理復雜的應用程序赞厕,因為您可以在一個時間內(nèi)專門關注一個方面艳狐。例如,您可以在不依賴業(yè)務邏輯的情況下專注于視圖設計皿桑。同時也讓應用程序的測試更加容易毫目。
MVC 分層同時也簡化了分組開發(fā)。不同的開發(fā)人員可同時開發(fā)視圖诲侮、控制器邏輯和業(yè)務邏輯镀虐。
AMD與CMD區(qū)別
-------------AMD 即Asynchronous Module Definition,中文名是異步模塊定義的意思沟绪。它是一個在瀏覽器端模塊化開發(fā)的規(guī)范
由于不是JavaScript原生支持刮便,使用AMD規(guī)范進行頁面開發(fā)需要用到對應的庫函數(shù),也就是大名鼎鼎RequireJS绽慈,實際上AMD 是 RequireJS 在推廣過程中對模塊定義的規(guī)范化的產(chǎn)出
requireJS主要解決兩個問題
多個js文件可能有依賴關系恨旱,被依賴的文件需要早于依賴它的文件加載到瀏覽器
js加載的時候瀏覽器會停止頁面渲染,加載文件越多坝疼,頁面失去響應時間越長
--------------CMD 即Common Module Definition通用模塊定義搜贤,CMD規(guī)范是國內(nèi)發(fā)展出來的,就像AMD有個requireJS钝凶,CMD有個瀏覽器的實現(xiàn)SeaJS仪芒,SeaJS要解決的問題和requireJS一樣,只不過在模塊定義方式和模塊加載(可以說運行腿椎、解析)時機上有所不同
------------二者區(qū)別:AMD推崇依賴前置桌硫,在定義模塊的時候就要聲明其依賴的模塊夭咬;
CMD推崇就近依賴啃炸,只有在用到某個模塊的時候再去require;