在JavaScript中,外部引用文件和onload()函数的执行顺序是有一定规律的。

1. 外部引用文件的加载是异步的,即浏览器会在加载HTML页面的同时,同时加载外部引用的JavaScript文件。这意味着,当浏览器遇到外部引用文件的标签时,会立即开始加载该文件,而不会等待整个HTML页面加载完毕。

2. onload()函数是在整个HTML页面加载完毕后执行的。当浏览器加载完所有HTML元素、外部引用文件以及其他资源后,会触发onload事件,从而执行相应的onload()函数。

基于以上规律,可以得出以下结论:

  • 如果外部引用文件的加载速度快于HTML页面的加载速度,那么外部引用文件中的代码可能会在onload()函数执行之前执行。这是因为外部引用文件的加载是异步的,可能会在HTML页面加载完毕之前就已经加载完成。
  • 如果外部引用文件的加载速度慢于HTML页面的加载速度,那么外部引用文件中的代码会在onload()函数执行之后执行。这是因为onload()函数是在整个HTML页面加载完毕后执行的。

为了确保在外部引用文件加载完成后再执行相关代码,可以将需要执行的代码放在onload()函数中,或者使用defer属性来延迟外部引用文件的执行。例如:

<script src="external.js" defer></script>
<script>
  window.onload = function() {
    // 在页面加载完毕后执行的代码
  };
</script>

使用defer属性可以确保外部引用文件的执行在整个HTML页面加载完毕后进行,从而避免了代码执行顺序的问题。以下是示例代码:

<!DOCTYPE html>
<html>
<head>
  <title>延迟执行外部引用文件</title>
</head>
<body>
  <h1>延迟执行外部引用文件</h1>

  <!-- 延迟执行的外部引用文件 -->
  <script src="external.js" defer></script>

  <!-- 其他HTML内容 -->

</body>
</html>

 

posted on 2016-09-05 17:18  C碧水蓝天S  阅读(5409)  评论(0编辑  收藏  举报