是否可以延迟加载Jquery(而不是插件)

Is it possible to lazy load Jquery (not a plugin)?

本文关键字:插件 延迟加载 Jquery 是否      更新时间:2023-09-26

我有几个JavaScript文件与我的许多页面一起加载,下载的数据量高达数十KB。其中之一是jquery.min.js的一个版本,虽然缩小了,但仍然是25kb左右

我的问题是,很大一部分手机不支持JavaScript,所以下载这个和其他JS文件是浪费数据。有没有办法通过在调用JS文件的页面中添加<script>标记来延迟加载JQuery文件,并且显然只有在浏览器支持JavaScript的情况下才会执行,只有这样下载它才有意义?

为了只在特定条件下加载脚本文件,我使用了以下内容:

<script type="text/javascript">
    document.write('<scr'+'ipt type="text/javascript" src="/js/jquery.min.js"></scr'+'ipt>');
</script>

注意:这只适用于内联,在加载完文档后,document.write()将产生不希望的效果。

注意2:重要的是要像'</scr'+'ipt>'一样断开'</script>',以免混淆浏览器的解析器,使其认为真正的脚本块已经结束。我用同样的方式标记开头的脚本。

function loadScript(filename) {
  var t = document.createElement('script'),
      s = document.getElementsByTagName('body')[0];
  t.type = 'text/javascript'; 
  t.async = true;
  t.src = filename;
  s.parentNode.appendChild(t);
}
// If and when jQuery is needed, you'd load it with:
loadScript('http://code.jquery.com/jquery.min.js');