2009-10-19 53 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框架(客户端方式),但它迫使您定义模型,控制器,并且它带有一个测试框架以使确定事情按计划进行。

让我知道这是否有帮助!