问个问题~~~~

来源:2-1 项目准备及编写HTML基本结构

Oo君陌oO

2019-03-27 10:48:02

实际开发中JS加载是放在最后吗 采用window.onload的会不会影响性能,看过一篇文章说是window.onload也会造成某些问题

写回答

1回答

Steve007

2019-03-27

同学,你好。一般实际开发中js加载是放在最后的,采用window.onload确实会造成一些影响,

window.onload事件是在整个页面包括dom结构、图片等等全部加载完成之后才会触发。

其次,HTML加载时是由上往下的,在HTML加载的时候,遇到function关键字,声明一个函数的时候,就会在内存中开辟一个新的空间来对函数进行存储,方便以后进行调用。

所以,当将一个函数function fun()写到window.onload()=function(){}内部的时候,需要整个页面加载完成的之后,才声明这个函数,也就意味着,当HTML加载到onclick="fun()"的时候,window.onload=function(){}里面的函数f还没有被声明,这时候内存中就找不到function fun(),于是就会报错。

那么,将function fun()移到window.onload()=function(){}外,则HTML加载到<head></head>的时候就会声明函数f了,所以进行onclick绑定的时候就能够在内存中找到fun()并进行调用。

祝学习愉快!


0

0 学习 · 4826 问题

查看课程