【问题标题】:Pause page load using javascript使用 javascript 暂停页面加载
【发布时间】:2013-02-14 14:41:42
【问题描述】:

我想知道是否可以暂停页面处理,直到加载某个脚本资源。但这是完整的画面:

有许多不同的脚本,其中一些使用包装器加载,而另一些则作为常规脚本加载,就像在这个 HTML 中一样:

<script type="text/javascript" src="/path/script1.js"></script>
<script type="text/javascript" src="/path/script2.js"></script>
<script type="text/javascript">wrapper.get('/path/script3.js');</script>
<script type="text/javascript">wrapper.get('/path/script4.js');</script>
<script type="text/javascript" src="/path/script5.js"></script>
<script type="text/javascript" src="/path/script6.js"></script>

使用包装器加载的脚本总是在所有常规脚本准备好之后下载。至少这是我在 Firefox 18 上遇到的情况。包装器的“get”方法这样做是为了下载资源:

jQuery.ajax({
    url: 'url of the script',
    dataType: 'script',
    cache: 'true',
    async: false
});

以上脚本将按此顺序加载:

  1. 脚本1
  2. 脚本2
  3. 脚本5
  4. 脚本6
  5. 脚本3
  6. 脚本4

所以我想知道我是否可以在包装器的“get”方法中做些什么来将它们下载为:

  1. 脚本1
  2. 脚本2
  3. 脚本3
  4. 脚本4
  5. 脚本5
  6. 脚本6

提前致谢!

【问题讨论】:

  • async: false 你的用户不会喜欢这样...
  • 看看这个,详细说明如何务实地加载 Javascript 文件stackoverflow.com/questions/950087/… 一点点 Jquery 可能是您需要的,这样您就可以自己控制加载顺序。

标签: javascript


【解决方案1】:

你可以 wrapper.get 是这样的:

function (url) {
    documen.write('<script type="text/javascript" src="' + url + '"></script>');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多