异步加载脚本
我正在使用来自JQuery的几个插件、自定义小部件和其他库。因此,我有几个.js和.css文件。我需要为我的网站创建一个加载程序,因为它需要一些时间来加载。如果我能够在导入所有以下内容之前显示加载程序,那就太好了:
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script><script type="text/javascript" src="js/myFunctions.js"></script>
<link type="text/css" href="css/main.css" rel="stylesheet" />...
....
etc
我已经找到了几个教程,使我能够异步导入JavaScript库。例如,我可以这样做:
(function () {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'js/jquery-ui-1.8.16.custom.min.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();
由于某种原因,当我对所有文件做同样的事情时,页面就不工作了。我一直试图找出问题出在哪里,但我就是找不到。首先,我认为这可能是因为一些javascript函数依赖于其他函数。但是,我使用超时函数按正确的顺序加载它们,当一个函数完成时,我继续进行下一个操作,页面的行为仍然很奇怪。例如,我不能点击链接等.。但是动画仍然有效.。
亚细亚
我一直在想.。我相信浏览器有缓存,这就是为什么第一次加载页面需要很长时间,下一次加载速度很快。因此,我想做的是用异步加载所有这些文件的页面替换index.html页面。完成Ajax之后,将所有这些文件重定向到我计划使用的页面。在使用该页面时,加载不需要很长时间,因为文件应该已经包含在浏览器的缓存中。在我的索引页面(.js和.css文件异步加载的页面)上,我不关心获取错误。我只会显示一个加载程序并在完成后重定向页面.
这个主意是个好选择吗?还是应该继续尝试实现异步方法?