Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以延迟加载Jquery(不是插件)?_Javascript_Jquery - Fatal编程技术网

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

Javascript 是否可以延迟加载Jquery(不是插件)?,javascript,jquery,Javascript,Jquery,我有几个JavaScript文件与我的许多页面一起加载,下载数据需要花费几万字节。其中一个版本是jquery.min.js,虽然缩小了,但仍然是25kb左右 我的问题是,大量手机不支持JavaScript,因此下载此文件和其他JS文件是浪费数据。通过在调用JS文件的页面中添加一个标记来延迟加载JQuery文件,并且显然只有在浏览器支持JavaScript时才会执行,这才有意义下载它吗?要仅在特定条件下加载脚本文件,我使用了如下方法: <script type="text/javascrip

我有几个JavaScript文件与我的许多页面一起加载,下载数据需要花费几万字节。其中一个版本是
jquery.min.js
,虽然缩小了,但仍然是25kb左右


我的问题是,大量手机不支持JavaScript,因此下载此文件和其他JS文件是浪费数据。通过在调用JS文件的页面中添加一个
标记来延迟加载JQuery文件,并且显然只有在浏览器支持JavaScript时才会执行,这才有意义下载它吗?

要仅在特定条件下加载脚本文件,我使用了如下方法:

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

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


注2:重要的是要像
'
那样中断
'
,以免混淆浏览器的解析器,使其认为真正的脚本块已结束。我用同样的方法做开场脚本标记,这是一个很好的衡量。

如果浏览器不支持JavaScript,我认为它不会下载脚本,Firefox不会。我刚刚用Firefox和Firebug测试了这一点。看起来你是对的(我不知道,谢谢)。对于移动浏览器来说,一个明确的答案是令人欣慰的。如果你有权访问服务器的访问日志,你可以在发出请求时查看它。只需查看我的日志。看起来它们甚至没有加载,这使得这个问题变得多余。很好的代码片段:)可以很好地解释为什么要使用“Scr”+“ipt”而不是“Script”(我知道为什么,我只是认为应该在你的帖子中解释一下)。这将行得通,但前提是文档中已经有一个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');