求教一个异步加载js的问题

蜗牛彪 2013-01-31 02:23:07
<div id="videoDiv"  style="z-index:-1;display:none;border:1px solid  #a8a8a8;position:absolute;top:50px;left:50px;width:425px;height:425px;">
<div id="videoDrag" onmousedown="initVideoDrag(this)" style="height:25px;line-height:25px;background-color:#76899B;cursor:move;font-size:12px;" >  <strong style="color:#fff;">视频窗口</strong></div>
<div style="z-index:1002;position:absolute;top:0px;padding:0px 0px;right:0px;height:23px;line-height:23px;background-color:#76899B;font-size:12px;"><span title="关闭" onclick="closeWin();" style="width:12px;border:0px;color:#fff;font-family:webdings;cursor:hand;">r</span>  </div>
<div id="video" style="display:none;border:0px solid blue;">
<script type="text/javascript" src="http://ip:9000/xx.js"></script>
</div>
</div>

这个是我接手的这个工程前台加载的一个远程掉用视频的js,现在问题是如果我在页面中将这一段代码注释掉,加载速度大概能提高4到5秒。领导要求我将这段js的调用改成看视频的时候再加载,我试了很多方法貌似都不行,一改成调用时再加载就看不了视频了,不知道各位大大有没有遇到过类似的问题,帮忙指点一下
...全文
224 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
地狱羔羊 2013-01-31
  • 打赏
  • 举报
回复
这个要看这个js里是怎么写的啦。如果这个js里没有与页面DOM交互。#2楼给出的可以试下。
蜗牛彪 2013-01-31
  • 打赏
  • 举报
回复
问题解决了,谢谢各位
Go 旅城通票 2013-01-31
  • 打赏
  • 举报
回复
引用 2 楼 fzfei2 的回复:
看你JS放的位置感觉, http://ip:9000/xx.js里面一般都是都有的document.write 如果有document.write的 动态加载js 方法就有问题了 用独立Iframe,通过控件Iframe.src 是否加载
#2给出方案了,通过iframe来加载。 做一个独立的视频页面放置你那些代码,window onload后再动态生成iframe加载视频页面
Kilin_Zhang 2013-01-31
  • 打赏
  • 举报
回复
引用 7 楼 jbiao5201314 的回复:
引用 3 楼 zhang_7150 的回复:应该是http://ip:9000/xx.js这个js文件的问题,内部可能使用了页面加载事件进行一些对视频操作。 动态加载进来,无法触及这些事件。 那这么说是不是没办法异步加载这个js了
那也不一定,你先研究下这个js代码,找出哪些地方使用了页面加载事件,然后将这些函数手动调用下也行
蜗牛彪 2013-01-31
  • 打赏
  • 举报
回复
引用 3 楼 zhang_7150 的回复:
应该是http://ip:9000/xx.js这个js文件的问题,内部可能使用了页面加载事件进行一些对视频操作。 动态加载进来,无法触及这些事件。
那这么说是不是没办法异步加载这个js了
蜗牛彪 2013-01-31
  • 打赏
  • 举报
回复
引用 4 楼 kinger906 的回复:
$.ajax加载视频后,在success方法中加载js试试
加载视频是直接调的这个远程js里的方法
蜗牛彪 2013-01-31
  • 打赏
  • 举报
回复
引用 1 楼 datiexiong 的回复:
动态加载js? <script> var oHead = document.getElementsByTagName('HEAD').item(0); var oScript= document.createElement("script"); oScript.type = "text/javascript"; ……
这个方法试过,不行,估计可能是那个js里的问题了
kinger906 2013-01-31
  • 打赏
  • 举报
回复
$.ajax加载视频后,在success方法中加载js试试
Kilin_Zhang 2013-01-31
  • 打赏
  • 举报
回复
应该是http://ip:9000/xx.js这个js文件的问题,内部可能使用了页面加载事件进行一些对视频操作。 动态加载进来,无法触及这些事件。
fzfei2 2013-01-31
  • 打赏
  • 举报
回复
看你JS放的位置感觉, http://ip:9000/xx.js里面一般都是都有的document.write 如果有document.write的 动态加载js 方法就有问题了 用独立Iframe,通过控件Iframe.src 是否加载
爱若如梦 2013-01-31
  • 打赏
  • 举报
回复
动态加载js? <script> var oHead = document.getElementsByTagName('HEAD').item(0); var oScript= document.createElement("script"); oScript.type = "text/javascript"; oScript.src="http://ip:9000/xx.js"; oHead.appendChild( oScript); </script> 后者这样 <script src='' id="s1"></script> <script language="javascript"> s1.src="http://ip:9000/xx.js" </script> 是不是xx.js中有什么逻辑问题,比如页面加载才运行的脚本?

87,915

社区成员

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

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