【问题标题】:structuring javascript in an .net MVC application在 .net MVC 应用程序中构建 javascript
【发布时间】:2011-09-13 10:50:18
【问题描述】:

我正在寻找一些关于在 .net MVC 应用程序中构建 JS 代码的指导。 我在每个加载的页面底部都有 JavaScript,我想将名称间距/模块化模式应用于我的 JavaScript,将其从内联代码中删除以分隔 JS 文件并根据正在访问的页面按需加载它们。

当我四处搜索时,我倾向于只找到 javascript 的 MVC 模式(例如 http://addyosmani.com/largescalejavascript/),这很好,但我很难理解如何将它实现到 MVC 应用程序中。

欢迎任何建议。

谢谢

【问题讨论】:

  • 为什么需要在 MVC 应用程序中实现它?只需使用您选择的通用打包程序,并使您的所有 javascript 成为一组模块化文件。 ASP.NET MVC 与 javascript 无关
  • 问题与[这里][1] [1]类似:stackoverflow.com/questions/5110028/…
  • Raynos - 因为它用于 MVC 应用程序。我想应用一种结构模式,它将按需加载 javascript 文件
  • @nologo 它是一个 MVC 应用程序这一事实是无关紧要的。你想要一个按需加载文件的模式,有很多而且它们都与 MVC 无关

标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:

我使用的技术类似于 Paul Irish 所描述的 here。但是,我没有使用硬编码的 id 或类名来了解需要加载和初始化哪些脚本,而是使用请求的 url(完整请求和 ajax reqs)

例如,假设我有一个客户编辑视图,用于响应对 myapp\customer\12\edit 之类的 url 的请求,我将在我的 js 中有一个客户命名空间,它有一个内部编辑命名空间。

customer 命名空间与编辑一样有一个 init 函数。所有客户页面在加载时都会调用客户初始化事件,然后调用任何操作级别的命名空间(如果存在)。这将有一个 init 函数,该函数会在页面加载时自动调用(我有一些魔法可以解析 url,以便我们知道要初始化哪个 js)。因此解析 url 将首先调用客户初始化基金,然后调用 customer.edit 初始化函数。还有一些常见的 init 函数每次都会为应用范围的逻辑触发(例如,创建侧边栏页面小部件)。

我不会按需加载 js。我发现从延迟的角度来看,合并+缩小所有 js 文件并在 gzip 下提供它们显然更好。

【讨论】:

    猜你喜欢
    • 2017-12-29
    • 1970-01-01
    • 2018-10-06
    • 2012-04-02
    • 1970-01-01
    • 2012-04-30
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多