如何让页面加载完成后执行js

如何让页面加载完成后执行js,第1张

<title无标题文档</title</head<body<script defer="defer"
先看到这段话 然后再执行上面的 JS 如果去掉上面的 defer="defer" 那么会先执行JS 在看到这段话</body</html

//加载事件
windowonload=function(){
alert('加载完毕');
};
以下是windowonload与 $(document)ready()的加载区别,可以参照下
windowonload:必须等到页面内包括的所有元素加载完毕后才能执行。
$(document)ready():是DOM结构绘制完毕后就执行,不必等到加载完毕。

js文件最后加载有三种实现方法。

第一种方法:

将js文件放在代码最后,因为程序是从上往下执行,所以最后加载。这种方法最简单粗暴。

第二种方法:

使用windowonload 事件。当一个文档完全下载到浏览器中时,才会触发windowonload事件。这意味着页面上的全部元素对js而言都是可以 *** 作的,也就是说页面上的所有元素加载完毕才会执行。这种情况对编写功能性代码非常有利,因为无需考虑加载的次序。

第三种方法:

使用jquery库的ready方法。如:$(document)ready{ }。会在DOM完全就绪并可以使用时调用。

注:

使用jquery库的ready方法,虽然这也意味着所有元素对脚本而言都是可以访问的,但是,并不意味着所有关联的文件都已经下载完毕。换句话说,当HMTL下载完成并解析为DOM树之后,代码就会执行。

使用$(document)ready(){ }一般来说都要优于试用onload事件处理程序,但必须要明确一点的是,因为支持文件可能还没有加载完成,所以类似图像的高度和宽度这样的属性此时不一定有效。

打开页面时,对比缓存中js中是否有需要加载的js,如果有直接用缓存中的js文件,不需加载;否则,则需要加载传入一个随机参数和使用验证码一样 在IE里 如果访问的URL在缓存中存在 浏览器不会再次加载 可以在引入时加个参数,这个参数一变化,就会去服务器加载js文件
<script language="javascript" src="pages/ceyl/js/myJsjsdate=XXX"></script>其中如果XXX发生变化就会重新加载js文件

解决办法:换一个js包含的方式,让javascript加载速度倍增。
把通常加载方式:
<script src="xxxxjs"></script>
改变成:
<script type="text/javascript">
documentwrite("<scr"+"ipt src=\"xxxjs\"></sc"+"ript>")
</script>
-------------------------------------
举个例子:
比如下面是申请的站长统计代码,以前尽管是把它放在页面的最底部,但还是拖累页面加载进度。
<script src=">

脚本中写

function bindEvent(obj,etype,lfun,bbind)/ bind event ro element (etype不含on)(bbind: true:bind;flase:unbind) /
{
if(bbind){
if(windowattachEvent){objattachEvent("on"+etype,lfun);}//ie
    else{objaddEventListener(etype,lfun,false); }//火狐
    }else{
    if(windowdetachEvent){objdetachEvent("on"+etype,lfun);}
    else{objremoveEventListener(etype,lfun,false); }}
}/这一段单独放在一个<script>标签里,最先加载,用来控制其他的加载
bindEvent(window,"load",function(){/这里写你加载完网页后要干的事情/},true);/每个脚本前面加上这句/

如果还有其他问题请追问

思路:
在页面最上方加上<script></script>就是最先执行的。不过你DOM节点没有加载完,别人也看不过,如果这代码执行时间过长,体验就不好了,用户一直看不到界面。
所以一般推荐是DOM加载完后再执行脚本。
你也可以用JQuery的read方法中执行你的效果,该方法是页面dom加载完但还没渲染时执行的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13340537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存