2009-10-19 52 views
3

我正在爲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,但它看起來不是我所需要的

+0

爲什麼你不認爲客戶端MVC框架不起作用?我聽起來對我來說很有用,而且我僅使用它獲得了很好的體驗(包括客戶端的JavaScript源代碼和服務器端生成的數據)。 – Daff 2009-10-19 06:40:46

+0

我從JavaScriptMVC文檔中得到了一個印象,那就是該框架是爲重度UI驅動的網站設計的,並且照顧了您在JavaScript中使用傳統php MVC設置所做的一切。由於我們已經有了php框架,並且從最後一次迭代中移植了很多功能,所以我不想將所有內容都移到javascript中。 – kevzettler 2009-10-19 15:47:22

回答

1

我們也使用JavaScript MVC。你可以在應用程序中使用這兩個。

在我們的例子中,我們的應用程序是更前端驅動的,後端(帶MVC的ZF)是一個REST API,而JavaScript MVC使得這很容易實現。該功能集仍然在PHP部分,而不是客戶端,我們只是利用JavaScript MVC的很多部分,使它看起來更快捷等。

最後,我看不出它爲什麼它couldn儘管如此,還是有其他方法的。

我認爲MVC中對視圖部分的誤解是它在瀏覽器中看到的東西。該視圖也可以是XML或JSON。我相信你知道這一點,但我想強調這一部分,因爲這是拋棄大多數人的原因。

如果您一般詢問JavaScript MVC--我不知道它是否是最好的MVC框架(客戶端方式),但它迫使您定義模型,控制器,並且它帶有一個測試框架以使確定事情按計劃進行。

讓我知道這是否有幫助!