Javascript(jQuery)效果等待图像加载

Javascript(jQuery)效果等待图像加载,javascript,jquery,Javascript,Jquery,因此,我有一个包含一些基本自定义选项卡的页面: *注意,它将要求登录,只需使用管理员/密码,然后转到该url。 正常加载此页面(第一次除外),一切正常。如果我对这个页面进行硬刷新,选项卡/选项卡式内容会显示为javascript尚未应用,javascript似乎只是在加载图像后才应用。问题是,我的javascript应用这些选项卡的方式如下所示(您可以查看/javascript/base.js了解全部内容): 我认为使用$(document).ready()不会等待加载所有图像,那么为什么我会

因此,我有一个包含一些基本自定义选项卡的页面:

*注意,它将要求登录,只需使用管理员/密码,然后转到该url。

正常加载此页面(第一次除外),一切正常。如果我对这个页面进行硬刷新,选项卡/选项卡式内容会显示为javascript尚未应用,javascript似乎只是在加载图像后才应用。问题是,我的javascript应用这些选项卡的方式如下所示(您可以查看/javascript/base.js了解全部内容):


我认为使用$(document).ready()不会等待加载所有图像,那么为什么我会看到javascript中的延迟?我们正在进行硬刷新?

尝试将脚本标记放在标题中-我想知道在下载脚本之前,您的浏览器是否仍在下载图像,那么.ready()呢在dom就绪后调用way。

尝试将脚本标记放在标题中-我想知道您的浏览器在下载脚本之前是否仍在下载图像,因此,在dom就绪后调用.ready()。

您使用的脚本是正确的,
$(document).ready()
仅等待DOM加载完毕。它不会等待图像加载。因此,问题很可能与加载脚本的位置有关

在代码中,您已将
标记放置在代码的底部。为什么呢?这很可能是一个问题,因为浏览器将沿着页面向下移动,按资产的显示顺序加载资产

将您的
标记放置在页面的
部分,以便在图像之前加载它们

测试这是否是问题的最佳方法是将其放在标题中,然后在加载图像之前查看是否触发:

<script>
$(document).ready(function ()
{
    //some code ...

    //tabbed data
    if($('.tabbed-data').length > 0)
    {
        $('.tabbed-data').tabs();
    }

    //some more code ...
});
</script>

$(文档).ready(函数()
{
//一些代码。。。
//选项卡式数据
如果($('.tabbed data')。长度>0)
{
$('.tabbed data').tabs();
}
//更多的代码。。。
});

您使用的脚本是正确的,
$(document).ready()
只等待DOM加载完毕。它不会等待图像加载。因此,问题很可能与加载脚本的位置有关

在代码中,您已将
标记放置在代码的底部。为什么呢?这很可能是一个问题,因为浏览器将沿着页面向下移动,按资产的显示顺序加载资产

将您的
标记放置在页面的
部分,以便在图像之前加载它们

测试这是否是问题的最佳方法是将其放在标题中,然后在加载图像之前查看是否触发:

<script>
$(document).ready(function ()
{
    //some code ...

    //tabbed data
    if($('.tabbed-data').length > 0)
    {
        $('.tabbed-data').tabs();
    }

    //some more code ...
});
</script>

$(文档).ready(函数()
{
//一些代码。。。
//选项卡式数据
如果($('.tabbed data')。长度>0)
{
$('.tabbed data').tabs();
}
//更多的代码。。。
});

The
$(document).ready()
将等待DOM完全加载,然后执行javascript。如果您的代码依赖于加载的资源(例如图像),请使用
$(窗口)。on('load',function(){})@Yoshi,我不认为这是他的意思。我想他想说的是,为什么页面在执行javascript之前要等待图像加载?这很可能是一个脚本加载issue@BenCarey啊,我明白了,那么错读了这个问题,对不起:)@Yoshi,不是probs。我也是,第一次!:-)请参阅我的回答
$(文档)。ready()
将等待DOM完全加载,然后执行javascript。如果您的代码依赖于加载的资源(例如图像),请使用
$(窗口)。on('load',function(){})@Yoshi,我不认为这是他的意思。我想他想说的是,为什么页面在执行javascript之前要等待图像加载?这很可能是一个脚本加载issue@BenCarey啊,我明白了,那么错读了这个问题,对不起:)@Yoshi,不是probs。我也是,第一次!:-)看我的回答好吧,把javascrt移到头部确实解决了这个问题。我将javascript文件放在页面末尾的原因是,几年前,我被告知最好将javascript放在页面末尾,这样页面似乎加载得更快,但正如本例所指出的,这似乎并不总是一个好主意。@ryanzec我总是将javascript放在页面顶部以确保它在内容之前加载。然后我在页面上放置了一个加载图标,一旦加载了内容,这个图标就被隐藏了。我将javascript文件放在页面末尾的原因是,几年前,我被告知最好将javascript放在页面末尾,这样页面似乎加载得更快,但正如本例所指出的,这似乎并不总是一个好主意。@ryanzec我总是将javascript放在页面顶部以确保它在内容之前加载。然后,我在页面上放置一个加载图标,一旦加载内容,该图标就会被隐藏。