引用多个带defer关键字的js文件时候的问题

chenlm 2004-03-15 01:34:21
<script src="inc/pop.js" defer></script> //独自的js文件

<script src="inc/meizzDate.js" defer></script> //函数
<script src="inc/common.js" defer></script> //函数

<script src="inc/ProjectExam.js" defer></script> 调用上面2个函数的

问题:

按照道理说,前3个位置变化应该是没关系的,可是如果变换某个或下面所有的都不执行了


在上面的执行顺序下执行 body.innerHTML += body.innerHTML + "asdasdasd"; 时
基本上都没问题,但是偶尔也会出现就执行了第一个而下面3个都不执行(至少最后一个不执行)的情况

是否是ie对defer关键字支持的不够好?还是有别的什么问题?
...全文
103 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenlm 2004-03-16
  • 打赏
  • 举报
回复
看来我只能把这四个js文件放到一个文件里面去了~~麻烦~~以后维护多麻烦阿
chenlm 2004-03-15
  • 打赏
  • 举报
回复
to:haluomao(抽烟的猫)
没有错误提示,因为最后一个不执行,所以那些函数也没人调用~
chenlm 2004-03-15
  • 打赏
  • 举报
回复
<script defer>
document.write("<script src='inc/pop.js' ><\/scr"+"ipt>");
document.write("<script src='inc/meizzDate.js' ><\/scr"+"ipt>");
document.write("<script src='inc/common.js' ><\/scr"+"ipt>");
document.write("<script src='inc/PactCensor.js' ><\/scr"+"ipt>");
</script>

这样直接就说找不到 document.body~ ft~~~~
haluomao 2004-03-15
  • 打赏
  • 举报
回复
可能是延时的问题吧,有什么错误提示吗?
defer是说当网页下载完才执行JS,我用过比较有用,可以解决延时的问题,但refer只能保证当前js下载完成,如果是多个js就不能保证了,建议你测试的时候,不要用本地的js文件,因为加载本地Js几乎没有任何延时,如果你顺序执行互联网上的几个js文件,延时就会很明显了
meizz 2004-03-15
  • 打赏
  • 举报
回复
是的. 你若是写语句加到 innerHTML 里确实要加 defer 但是你是直接引用文件呀.
对了你直接引用文件用另一种方法吧;
document.write("<script src='inc/meizzDate.js'><\/scr"+"ipt>");
chenlm 2004-03-15
  • 打赏
  • 举报
回复
比如说:<script>alert("d");</script>

如果没有defer,那么只第一次运行就不会再运行了(网页刷新除外)

而我想每次body.innerHTML 变化都要执行

可执行顺序好像问题比较大
meizz 2004-03-15
  • 打赏
  • 举报
回复
body 这个标签在网页默认都会有的, 就象 table 里的 tbody 标签一样, 即使你不加也会有.
对于JS文件的直接加载这种做好象不需要加 defer 吧.
chenlm 2004-03-15
  • 打赏
  • 举报
回复
而且也不能放在head里面

因为load完后js文件会对其中的控件作操作,如挂接事件等
chenlm 2004-03-15
  • 打赏
  • 举报
回复
document.body一定就指的是body标签里的东西吗?

没有body 标签 一样可以写,这是什么原理呢?
meizz 2004-03-15
  • 打赏
  • 举报
回复
整个body.innerHTML都会被重写, 那么你把JS的加载放在 head 区里就不会有什么影响了呀
chenlm 2004-03-15
  • 打赏
  • 举报
回复
有必要的阿~~

整个body.innerHTML都会被重写,但是这些js还是要用,没有defer的话这些js就不起作用了
meizz 2004-03-15
  • 打赏
  • 举报
回复
若是没有必要的话, 你不需要用 defer 来延迟代码的加载执行呀.

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧