我正在为 Web 应用迭代开发一种新的 JavaScript 架构。之前的迭代有很多内联代码,分散的包含,没有 .js 文件的目录结构,一切都在全局命名空间中。我的目标是:将脚本包含在页脚中,将所有内容保留在应用程序 namespace /对象中,将组织添加到 .js 文件并将所有应用程序特定文件缩小到一个 bundle.js 中
我正在尝试采用基于 Nicholas Zakas 的模块化方法:“可扩展的 JavaScript 应用程序架构”http://www.yuiblog.com/blog/2009/09/17/video-bayjax-sept-09/
网站目前的结构是这样的
/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
Controller 具有对应于我们的 url 路由和 View 渲染的方法。例如 http://localhost/meta/contact
会在“meta” Controller 上调用“contact”操作并呈现 meta/contact 模板。
我正在围绕对应用程序全局对象的单个初始化调用来规划 js 架构,将 Controller 和方法作为参数传递给它,即
localwebapp.init(controller, method);
在设计的这一点上,我正在为继承和模块实现而苦苦挣扎。一些模块将是全局的并在整个站点中使用,一些模块将通过特定的 Controller 使用,而一些模块将仅在 Controller 操作上使用。 模块是独立的,不会相互通信,它们将需要分配给一个“沙箱”,它们将检查事件触发器
我想我需要沙箱和模块类。 Controller 脚本基本上是分配给沙箱并初始化的几行模块。
如果我在这里重新发明轮子,请告诉我。非常感谢任何方向。我查看了 javascript MVC 框架,它的工作原理与 JavaScriptMVC 类似,但它看起来不是我需要的
最佳答案
我们也使用 JavaScript MVC。您可以在应用程序中同时使用两者。
在我们的案例中,我们的应用程序更多地由前端驱动,而后端(带 MVC 的 ZF)是一个 REST API,而 JavaScript MVC 可以轻松实现这一点。功能集仍然在 PHP 部分,而不是客户端,我们只是利用了 JavaScript MVC 的很多部分,使它看起来更活泼,等等。
最后,我看不出有什么理由不能反过来。
我认为 MVC 中对 View 部分的误解是它是在浏览器中看到的东西。 View 也可以是 XML 或 JSON。我相信您知道这一点,但我想强调这一部分,因为它会让大多数人望而却步。
如果您通常询问有关 JavaScript MVC 的问题——我不知道它是否是最好的 MVC 框架(客户端方面),但它会强制您定义模型、 Controller ,并且它附带一个测试框架以确保事情按计划进行。
如果这有帮助,请告诉我!
关于javascript - 如何构建 Javascript 架构以补充 PHP MVC 网络应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1587037/