通过延迟脚本来优化站点速度我遇到了对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)
所以我的问题是:如何解决这个问题,因为没有延迟捆绑一切都很好。