【问题标题】:Loading jquery in MVC 4.0 master page在 MVC 4.0 母版页中加载 jquery
【发布时间】:2014-11-11 10:38:57
【问题描述】:

在我的 _Layout.cshtml(master page) 文件的 <head> 部分中,我对缩小的 jQuery 有以下参考:

<script src="~/Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>

添加此行后,我现在可以在所有引用母版页的页面中使用 jQuery,这很棒。我想知道 jQuery 文件的加载多久执行一次?是否每次都执行当网站的第一页在浏览器中加载时,页面被加载还是只加载一次?

【问题讨论】:

  • 在使用 MVC 时,还应该使用 bundle 来提高跨多个 JS 脚本的性能。

标签: javascript c# jquery asp.net asp.net-mvc-4


【解决方案1】:

文件将在首次加载时加载到浏览器的缓存中。对于每个后续请求,将从缓存中读取它以减少带宽需求并提高速度。

如果你真的想提高性能,你可以从全球 CDN 加载 jQuery.js,比如谷歌,它的优点是速度快,而且由于它的广泛使用,很可能有人已经在他们的从此位置缓存。

我还建议使用更新版本的 jQuery,因为 1.8.2 现在已经很老了。如果您需要旧版浏览器支持(IE9 及更低版本),请使用 1.11:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

否则你可以使用更小更高效的 2.x:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

  • 对于多个 JS 文件,捆绑“本地”文件比使用 CDN 更有效,因为 JS 文件的数量通常是瓶颈。同样,这确实取决于文件、版本以及它在用户浏览器上的常用程度。
  • 您知道在 iPad 上使用 Safari 访问网站时这种行为是否相同?
  • @Denis 是的,完全一样。
【解决方案2】:

相反,为您的 javascript 文件创建一个包 在 App_Start\BundleConfig.cs 文件中,添加以下代码。 它将加载所有以 jquery 为前缀的文件,其中其余部分是版本号 例如jquery-1.10.2.js

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/*.js"));

这将从脚本文件夹加载所有 .js 文件。

要加载上面的包,请转到您的 _Layour.cshtml(您的母版页)并呈现如下

@Scripts.Render("~/bundles/jquery")

更新

您可以为自定义 javascript 文件创建捆绑/缩小。

在您的 BundleConfig.cs 文件中将此标志设置为 true 以缩小 javascript 文件

BundleTable.EnableOptimizations = true;

【讨论】:

  • 其实第一个只会加载jquery-前缀的文件其余的是版本号。例如它会加载 jquery-ui-*.js
  • 所以如果我这样做,我可以添加我在 Web 应用程序中使用的所有其他 javascript 文件并且它们也只会加载一次吗?
  • 不,所以它会做的是,第一次,它会缩小你的 javascript 并创建一个包(它的大小会非常小),然后在需要时它会返回缩小的 js 包。
  • 我需要为我的每个脚本创建缩小文件吗?还是 mvc 会自动缩小我的脚本?
  • 你需要 true " enableOptimization= true " 标志,MVC 会做休息,详细解释捆绑和缩小检查下的性能如何提高检查链接。 asp.net/mvc/overview/performance/bundling-and-minification
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多