在asp.net mvc中推迟加载Javascript方法

时间:2016-11-26 06:25:52

标签: javascript asp.net-mvc performance deferred-execution deferred-loading

我将实现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是否保持不变或可以更改。如果它保持不变那么我认为不会有任何问题。 请建议。

0 个答案:

没有答案