javascript - 如何/何时/何地包含外部 javascript

标签 javascript jquery architecture

我正在寻找一些关于保存我的 JavaScript (jQuery) 函数的最佳方式的建议。

我在 MVC/razor 中开发,因此有一个布局页面。我在此处包含我的 jQuery 库和一个外部 JavaScript 文件,因此它在每个页面中都可用。

这工作得很好,但我现在越来越意识到我在每个页面中添加了将近 300 行 JS,其中可能有一半用于这些页面中的任何一个。

一个函数不在外部文件中,而是位于 HTML 中,因为我需要使用在我的 Razor 代码中设置的变量。

我对这个安排有几个问题:

  • 当使用使用 razor 设置的变量时,将 JS 放在 HTML 中通常是可以接受的吗?似乎没有一种将变量传递到外部 js 文件的干净方法
  • 我是否应该将我的功能分解成单独的 JS 文件,只包含网站中每个页面所需的内容?
  • 如果我要将它们拆分成多个文件,那将如何与 jQuery 的 (document).ready 一起工作?如果要使用我包含的所有 JavaScript,我是否需要使用它?

我确信这更多的是见仁见智,而不是非黑即白的答案,但我想在继续之前考虑所有的选择。尽管它按原样运行良好,但我还是忍不住觉得有更好/更清洁的方法。

最佳答案

请记住,一旦用户登陆您的主页并加载 javascript 文件,该文件将缓存在他们的浏览器中,因此后续页面将不会再次下载 Javascript。

我肯定会将 js 分开,您可以在每个页面上都有一个片段来初始化特定 View 所需的 JS。在需要运行 JS 的 View 中放入类似下面的内容

$(document).ready(function() {
    mysite.mypage();
});

然后可以在外部JS文件中定义函数mysite.mypage()。 300 行不是世界末日,我想说现在担心优化可能还为时过早。

您总是可以考虑缩小该 JS 文件以减小大小。此处提供了一种快速简便的方法:

http://www.minifyjavascript.com/

关于javascript - 如何/何时/何地包含外部 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954734/

相关文章:

javascript - 如何每次使用随机毫秒数的setInterval?

javascript - 在页面中找到一串文本并在其周围包裹一些 span 标签

JQuery - 在不改变按钮大小的情况下改变按钮的字体粗细

javascript - 用于比较字符串数组的前 n 个字符的正则表达式

java - 与实体不直接相关的属性的最佳设计方法是什么?

assembly - 为什么有些架构没有 MOV?

javascript - "Never join already wrapped lines"用于 Javascript 源格式化程序

javascript - 如何自动点击输入按钮

javascript - 到达页脚时 jQuery 停止固定侧边栏

c# - 防止在松散耦合系统中多次执行操作的策略(使用 Azure 服务总线和云工作人员)