我将实现Defer加载JavaScript方法,因为根据当前结构,在<head>
元素中调用JavaScript,这需要很长的响应时间。所以我只想在完成DOM加载后添加这个JavaScript。
这是cshtml文件中的代码
Layout.cshtml
<head>
@Scripts.Render("~/bundles/javascript")
</head>
呈现的html视图来源:
<head>
<script src="/bundles/javascript?v=abcdefghikeriotterpoggkjs-fskdf"></script>
</head>
以下是我打算做的事情:
我将从@Scripts.Render("~/bundles/javascript")
部分删除<head>
。然后从渲染的视图源复制src
值并使用下面给出的
<script type="text/javascript">
// Add a script element as a child of the body
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "/bundles/javascript?v=abcdefghikeriotterpoggkjs-fskdf";
document.body.appendChild(element);
}
// Check for browser support of event handling capability
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else
window.onload = downloadJSAtOnload;
</script>
我做得对吗?我的疑问是整个应用程序中此值v=abcdefghikeriotterpoggkjs-fskdf
是否保持不变或可以更改。如果它保持不变那么我认为不会有任何问题。
请建议。