脚本包的执行顺序

时间:2017-09-07 06:51:59

标签: javascript jquery asp.net-mvc bundle deferred-rendering

通过延迟脚本来优化站点速度我遇到了对bundle的顺序排序的问题(不是bundle中脚本的顺序)。

我正在阅读过去几个小时没有运气的帖子。

在将延迟添加到捆绑包之前一切正常,所以这是我遇到问题的唯一原因。

在我的布局页面中,我有:

@Scripts.RenderFormat("<script src='{0}' defer></script>", "~/bundles/SiteLevelScripts")

@RenderSection("scripts", required: false)

在特定页面中,我在脚本部分中呈现脚本:

@section scripts
{
     @Scripts.RenderFormat("<script src='{0}' defer></script>", "~/bundles/Page1")
}

所有工作正常,直到我为两个捆绑添加了延迟。

现在的问题是我有一个未被发现的错误:

Uncaught TypeError: Cannot read property 'Init' of undefined
at HTMLDocument.<anonymous> (one-of-page1.js:2)
at fire (jquery-1.12.4.js:3233)
at Object.add [as done] (jquery-1.12.4.js:3292)
at jQuery.fn.init.jQuery.fn.ready (jquery-1.12.4.js:3543)
at layout-page.js:1

我认为这是因为"~/bundles/Page1""~/bundles/SiteLevelScripts"完成之前开始执行。

在这种情况下,我的问题是:

如何强制"~/bundles/Page1"仅在第一个站点级别包完成执行后执行?

**编辑 - &gt; **以下句子不准确:​​

  

我认为这是因为"~/bundles/Page1"开始造成的   在"~/bundles/SiteLevelScripts"完成之前执行。

因为问题在没有async的情况下发生。 (谢谢@Rory McCrossan)

所以我的问题是:如何解决这个问题,因为没有延迟捆绑一切都很好。

0 个答案:

没有答案