【问题标题】:Is loading a script with the script tag more reliable than dynamically via getScript?使用脚本标签加载脚本是否比通过 getScript 动态加载更可靠?
【发布时间】:2014-04-04 22:01:54
【问题描述】:

我有一个加载多个脚本的页面,我想通过延迟加载这些脚本直到文档准备好来提高性能。

我使用 jQuery 的 getScript 实现了它并且它可以工作,但是我添加了脚本加载结果的日志记录,结果在一小部分访问中,一些外部脚本无法加载。现在这些脚本对于页面来说是必不可少的,所以如果它们没有加载,那么菜单将无法工作。

我想知道是否通过静态脚本标记 (<script src="..."></script>) 以传统方式加载这些脚本,这让浏览器执行它比通过 getScript 动态执行它更可靠。我不认为应该有区别,但我想我会问。

浏览器做得更好还是完全一样,这些脚本加载错误也发生在静态脚本标签上,所以 getScript 和脚本标签一样好?

(我知道在这两种情况下都是浏览器进行下载,问题是关于脚本标签与 getScript。)

【问题讨论】:

  • 可能有些浏览器不支持 AJAX 请求?当您使用脚本标签加载内容时,每个,即使是最古老的浏览器,都将设法通过简单的 HTTP 请求下载它。也许您的某些客户端浏览器不支持您使用 JS 加载脚本所需的任何 ajax 功能。
  • getScript 和 script 方法的区别在于 getscript 你的请求不会被阻塞(异步加载)
  • @DarkBee 是的,我知道,这就是我切换到它的原因。问题是加载可靠性是否存在差异,或者无论使用哪种方法都相同。
  • @wesolyromek 我也在记录错误原因。以下是其中一些:没有原因是最频繁的,然后是“组件返回失败代码:0x80040111(NS_ERROR_NOT_AVAILABLE”来自jquery,一些DLL初始化错误等。第一个是最频繁的(没有给出错误原因),所以我不知道那里会发生什么。
  • 我发现了一些信息,这是当存在一些未命名的错误时引发的 firefox 错误:/ 当人们尝试访问本地存储或某些画布方法时,它经常出现。

标签: javascript jquery html


【解决方案1】:

看看这个:

Why call $.getScript instead of using the <script> tag directly?

此外,如果“在一小部分访问中发现某些外部脚本无法加载”,您需要仔细了解发生这种情况的时间和地点。问题可能不是你如何调用脚本,而是你何时何地调用它。也可以在您的帖子中查看 Wesolyromek's 评论。

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    相关资源
    最近更新 更多