【发布时间】: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