【发布时间】:2010-07-28 13:27:13
【问题描述】:
我正在尝试找出管理我的 MVC 项目的 javascript 代码的最佳方法。由于页面的工作流程,我网站的一些页面在用户界面中使用 javascript 非常繁重。
为了使开发和调试更容易,我将所有 javascript 拆分为四个 .js 文件,Initializations.js 具有处理任何形式的 jquery 控件和字段初始化的所有功能,DataRetrieval.js 具有所有功能通过 ajax 检索和显示数据,DataModification.js 具有通过 ajax 将数据修改发送到服务器的所有功能,Utilities.js 具有提供帮助的实用功能。
以这种方式构建它不仅有助于我的开发工作,因为我知道哪个文件包含基于函数的特定函数,而且它还使我的 javascript 文件更小。它还有助于调试,因为我可以直接从 chrome 的调试器中查看脚本,选择哪个文件并轻松找到我需要调试的功能。从我正在阅读的内容来看,这也有帮助,因为大多数浏览器可以同时下载多个 .js 文件,从而更快地加载页面。这也使得以后更容易缩小。
我注意到的问题是,使用 .js 文件我无法将 C# 代码嵌入其中,因为它们不是视图。这意味着我所有的 URL 都必须有魔术字符串(因此,如果我稍后更改路由,我必须手动更改所有 URL)并且我不能使用我在 C# 中设置的常量来使所有内容都易于管理(如果我更改一个常量,例如整数意味着一个项目未发布,我必须在我的 javascript 文件中搜索所有引用并手动更改它们,这可能会导致错误)。
现在我想到的一种可能性是将我的 javascript 文件转换为部分视图。然而,这仍然使在 Web 浏览器中调试页面变得相当复杂,因为页面的源代码将被 javascript 乱扔。这也使得以后很难缩小 javascript。
那么我可以使用哪些其他策略来管理我的 javascript 并使其与网站的 c#/MVC 部分保持一致,并且在我需要进行更改时不必违反 DRY?
我网站的 Web 应用程序部分还有很多开发工作要做,所以还有很多 JavaScript 需要编写,我想在事情变得比现在更糟之前想出一个策略。
【问题讨论】:
-
一个有趣的问题。在一些小型(非 MVC)项目中,我最终包含了一个 .js 文件,以及我的页面上名为“setupVariables”之类的单个方法,因此我可以将 C# 嵌入其中......我敢肯定不是最优雅的解决方案。
-
也许这篇文章可以帮助你。 stackoverflow.com/questions/2957517/… 问候。
-
那篇文章正是我所需要的。允许我将所有 js 文件分开,但仍然允许在其中使用 C#!谢谢!
标签: javascript asp.net-mvc code-organization