JS一定要在网页全部加载完成后才能运行吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS一定要在网页全部加载完成后才能运行吗?相关的知识,希望对你有一定的参考价值。

我是引用外部JS文件的.
<script src="js/prototype.js"type="text/javascript"></script>
<script src="js/scriptaculous.jsload=effects"type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>以为图片多 总是要等到图片加载完之后才能运行JS.
有什么办法可以解决?

呵呵。楼上三位回答得好搞笑。再回答楼主的。

这些都是不一定的。虽然JS加载是放在head里。但是也要看里面的JS是怎么写的。比如,我们写jqery一开始很多人会用$(function()...),或者有一个JQ的ready事件,那么这就是JQ封装好的,加载完DOM才执行。如果写原生的。很多人会写window.onload这个事件,就是需要加载完DOM和所有图片之后才执行JS。所以会影响速度。给楼主一个简单的办法
1.看你JS里面怎么写的。把这些事件都去掉。然后把JS放在BODY后面。这样,就会下载完DOM树后不等图片直接加载JS了。
参考技术A 这个没办法。。。可以用js压缩工具压缩js文件实现加快载入速度。不然dom不完整,会执行出错 参考技术B

不一定。

网页加载的时,是按照从上到下的方式执行和解析的。如果js代码网页的最上方,则会先执行js代码。

比如

<head>
<script>
   var i=0;//这里再body加载之前,会先执行i=0这行js代码。而这时候网页还没有全部加载完成。
</script>
</head>
<body>
</body>

参考技术C JS代码的加载是和页面的html标签一起,按文档顺序从上至下开始加载的,加载完后,并且JS代码里的对象都能找到,才能正确运行,否则会在调试界面看到红色的错误 参考技术D 除了动态加载的。按照html里的顺序依次执行。

js的引用顺序

注意:Bootstrap中的JS插件依赖于JQuery,因此JQuery要在Bootstrap之前引用!!!

 

把JS文件引用放入body的最下面,是为了使js在网页全部加载完后才起作用,比如你的js里面有个alert,如果放在头部会因为弹出窗口等待用户确认而导致整个页面加载受影响。所以,通常做法,样式表通常放在head里而最先加载完毕,而js在body后。

以上是关于JS一定要在网页全部加载完成后才能运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

JS实现document.ready

JS实现document.ready

怎么让网页加载完成后再显示

你能用 c++ 加载一个网页,包括 JS 和动态 html 并获取渲染的 DOM 字符串吗?

js加密后能在网页中运行吗?怎么运行

js 加alert后才能执行方法