將狀態儲存在客戶端可以加快頁面反映;但應當避免狀態或資料儲存在dom中;在mvc中,狀態應該儲存在控制器中
控制器是檢視和模型的紐帶,只有控制器知道檢視和模型的存在並將它們連線在一起;當載入頁面時,控制器將事件處理程式繫結在檢視裡,並適時地處理**,以及和模型必要地對接
用來封裝邏輯並避免全域性命名空間汙染,一般使用匿名函式實現
(function() )();
全域性匯入
利用引數地方式
(function($) )(jquery)
全域性匯出(function($, exports) )(jquery, window);
模版中地上下文是全域性;想自定義作用域上下文需要將使用物件方法
(function ($) ;
mod.load = function(func) ;
mod.load(function() );
mod.assetsclick = function(e) ;
mod.load(function() )
})(jquery)
控制器內所有地狀態都是區域性封裝在模組裡
抽象出庫
(function ($, exports)
mod.fn = mod.prototype;
//保證函式在區域性上下文中執行
mod.fn.proxy = function(func) ;
mod.fn.load = function(func) ;
//給控制器新增屬性
mod.fn.include = function(ob) ;
exports.controller = mod;
})(jquery, window);
(function($, controller) ;
mod.load(function() );
})(jquery, controller);
擴充控制器
//給每個實例子新增屬性/方法
controller.fn.click = function(func)
//使用
var mod = new controller;
mod.click(function());
//或者從其他控制器複製方法過來
(function ($, exports) ;
statemachine.fn = statemachine.prototype;
statemachine.fn.add = function(controller);
exports.statemachine = statemachine;
})(jquery, window);
var mod = new controller;
mod.include(statemachine);
文件載入完之後載入控制器
目前,控制器地一部分在生成dom之前就載入裡,另一部分則在頁面文件載入完成後觸發地**裡;解決地方法是統一在dom生成後載入控制器
var exports = this;
(function($) ;
mod.create = function(includes) ;
result.fn = result.prototype;
result.fn.init = function() {};
result.proxy = function(func)
result.fn.proxy = result.proxy;
result.include = function(ob)
result.extend = function(ob) ;
if(includes) result.include(includes);
return result;
};exports.controller = mod;
})(jquery);
//使用jquery.ready()
jquery(function($) ,
toggleclass: function(e)
});//例項化
new toggleview("#view");
});
MVC前端控制器和後端控制器
作為乙個mvc框架,首先要解決的是 如何能夠收到請求!所以mvc框架大都會設計一款前端控制器,選型在 servlet 或 filter兩者之一,在框架最前沿率先工作,接收所有請求。此控制器在接收到請求後,還會負責springmvc的核心的排程管理,所以既是前端又是核心。mvc org.springf...
mvc 載入控制器
這裡需要注意到的是 類名和方法名不能是同乙個名字,indexcontroller.php頁面 class indexcontroller 然後我們到控制器編碼部分mvc.php 用乙個變數存放我們的控制器 controllerclass route controller 同樣存放方法 action ...
5 控制器和狀態
1 模組模式 模組模式是用來封裝邏輯並避免全域性命名空間汙染的好方法,匿名函式也可以做到。在匿名函式的邏輯都在閉包裡面執行,為應用中的變數提供了區域性的作用域和私有的執行環境 function 2 全域性匯入 定義在模組裡的變數都是區域性變數,因此在全域性命名空間中時無法訪問他們的,然而全域性變數仍...