加载页面后推迟javascript和jquery的终极解决方案

问题描述 投票:2回答:1

你可能知道,Google PageSpeed Insights希望你推迟你的javascript。

谷歌本身suggests a solution推迟你的代码:

<script type="text/javascript">
    function downloadJSAtOnload()
    {
        var element = document.createElement("script");
        element.src = "deferredfunctions.js";
        document.body.appendChild(element);
    }
    if (window.addEventListener) window.addEventListener("load", downloadJSAtOnload, false);
    else if (window.attachEvent) window.attachEvent("onload", downloadJSAtOnload);
    else window.onload = downloadJSAtOnload;
</script>

当然是一个很好的解决方案,但它远非真实情况(包括许多脚本,执行代码等等)

从一个例子开始:

<html>
    <head>
    </head>
    <body>
        <script type='text/javascript' src='...'></script>
        <script type='text/javascript' src='...'></script>
        <script type='text/javascript' src='...'></script>
        <script type='text/javascript'><!--
            // some code
            $(document).ready(function(){
                // code to execute when the page is ready
            });
        --></script>
    </body>
</html>

问题是:如何将Google建议应用于上述示例?

javascript jquery pagespeed
1个回答
0
投票

如果您让downloadJSatOnload将几个脚本元素附加到页面,然后调用通常放在$(document).ready(function () { ... });中的代码,那么Google示例可以用于多个脚本。该代码可以显式调用,也可以是下载的最后一个文件。

© www.soinside.com 2019 - 2024. All rights reserved.