我正在爲Web應用程序迭代創建新的JavaScript體系結構。以前的迭代有很多內聯代碼,分散的包含,沒有用於.js文件的目錄結構,並且所有內容都位於全局名稱空間中。我的目標是:保持腳本包含在頁腳中,將所有內容保存在應用程序名稱空間/對象中,將組織添加到.js文件並將所有應用程序特定文件縮小到一個包中.js如何構建Javascript體系結構以補充PHP MVC Web應用程序?
我正在嘗試利用基於尼古拉斯Zakas模塊化方法:「可擴展的JavaScript應用程序體系結構」 http://www.yuiblog.com/blog/2009/09/17/video-bayjax-sept-09/
目前,該網站structred像這樣
/app
/models
/views
/home
/auth
/meta
about.tpl
contact.tpl
privacy.tpl
/controllers
home.php
auth.php
meta.php
/public
/js
core.js
/modules
module files here
/jquery
jqueryplugins here
/controllers
home.js
auth.js
meta.js
控制器具有對應於我們的URL路由和視圖渲染方法。例如http://localhost/meta/contact
會在「元」控制器上調用「聯繫」動作並呈現元/聯繫人模板。
我打算圍繞一個初始化調用應用全局對象JS的體系結構通過它的控制器和控制方法作爲參數,即
localwebapp.init(controller, method);
在設計這點我很努力繼承和模塊實現。有些模塊是全局性的,可以在整個站點中使用,有些模塊將用於特定的控制器,有些模塊僅用於控制器操作。 模塊是獨立的,不會相互通信,他們需要分配到一個「沙箱」,他們將檢查事件觸發器
我想我會需要沙箱和模塊類。控制器腳本基本上是分配給沙箱並初始化的幾行模塊。
讓我知道如果我在這裏重新發明輪子。任何方向都非常感謝。我看過JavaScript MVC框架的工作原理就像JavaScriptMVC,但它看起來不是我所需要的
爲什麼你不認爲客戶端MVC框架不起作用?我聽起來對我來說很有用,而且我僅使用它獲得了很好的體驗(包括客戶端的JavaScript源代碼和服務器端生成的數據)。 – Daff 2009-10-19 06:40:46
我從JavaScriptMVC文檔中得到了一個印象,那就是該框架是爲重度UI驅動的網站設計的,並且照顧了您在JavaScript中使用傳統php MVC設置所做的一切。由於我們已經有了php框架,並且從最後一次迭代中移植了很多功能,所以我不想將所有內容都移到javascript中。 – kevzettler 2009-10-19 15:47:22