简体   繁体   English

延迟Javascript解析给出错误

[英]Deferring Javascript parsing giving error

I purchased a theme. 我购买了一个主题。 Modified it. 修改了。 However , it was loading slow. 但是,它加载缓慢。 I compressed the images, and used gzip. 我压缩了图像,并使用了gzip。 I read somewhere that deferring JS parsing may help even further. 我在某处读到,延迟JS解析可能会进一步提供帮助。 So, I deferred them using the following script added just below the body tag. 因此,我使用在body标签下面添加的以下脚本推迟了它们。 Now, the page wont even load. 现在,该页面甚至不会加载。

<script type="text/javascript" charset="utf-8">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "js/filename.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>

List of scripts I use: 我使用的脚本列表:

<script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&language=en"></script>
    <script type="text/javascript" src="js/jquery.cookie.js"></script>
    <script type="text/javascript" src="js/styleswitch.js"></script>
    <script type="text/javascript" src="js/jquery.nav.js"></script>
    <script type="text/javascript" src="js/jquery.sticky.js"></script>
    <script type="text/javascript" src="js/jquery.parallax-1.1.3.js"></script>
    <script type="text/javascript" src="js/jquery.lavalamp-1.4.js"></script>
    <script type="text/javascript" src="js/jquery.scrollTo.js"></script>

    <script type="text/javascript" src="js/rs-plugin/js/jquery.themepunch.plugins.min.js"></script>
    <script type="text/javascript" src="js/rs-plugin/js/jquery.themepunch.revolution.min.js"></script>
    <script type="text/javascript" src="js/jquery.carouFredSel-6.1.0-packed.js"></script> 
    <script type="text/javascript" src="js/jquery.bxslider.min.js"></script>
    <script type="text/javascript" src="js/jquery.colorbox.js"></script>    
    <script type="text/javascript" src="js/jquery.isotope.min.js"></script>
    <script type="text/javascript" src="js/fancybox/jquery.fancybox.pack.js"></script>
    <script type="text/javascript" src="js/jquery.gmap.js"></script>
    <script type="text/javascript" src="js/flex-slider.min.js"></script>
    <script type="text/javascript" src="js/jquery.placeholder.js"></script>
    <script type="text/javascript" src="js/jquery.validate.min.js"></script>
    <script type="text/javascript" src="js/jquery.tweet.js"></script>

    <script type="text/javascript" src="js/main.js" charset="utf-8"></script>

You probably meant something like this: 您可能意思是这样的:

function downloadJSAtOnload( script) {
  var element = document.createElement("script");
  element.src = script;
  document.body.appendChild(element);
}

function downloadAllScripts () {
  downloadJSAtOnload( 'js/jquery.js');
  downloadJSAtOnload( 'js/bootstrap.min.js');
  //etc
}

if (window.addEventListener)
  window.addEventListener("load", downloadAllScripts, false);
else if (window.attachEvent)
  window.attachEvent("onload", downloadAllScripts);
else window.onload = downloadAllScripts;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM