微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax – jQuery .load()等到内容加载完毕

如何防止jQuery $(‘body’).load(‘something.PHP’);从更改任何DOM直到来自something.PHP(包括图像,js)的所有内容都完全加载

– 让我们说一些实际的内容是:

Hello world

而且something.PHP内容是:

image that loads for 10 seconds
20 js plugins

在触发.load()函数之后,什么都不应该发生,直到图像js文件被完全加载,然后然后立即改变内容.

可能会出现一些预加载器,但它不是问题的主题.

[编辑] – – – – – – – – – – – – – – – – – – – – – – – – ———————–

我的解决方案是css代码(css在构建dom之前始终加载),具有跨浏览器不透明度0.

.transparent{
    -moz-opacity: 0.00;
    opacity: 0.00;
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha"(Opacity=0);
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
    filter:alpha(opacity=0);
}

并且它通常但不总是防止内容错误闪烁.现在它可以以某种方式检测jQuery ajax加载内容并应用一些show timeout等等.但实际上问题仍然存在.

现在为这个问题做一个更简单的例子:

如何在$(‘body’)之后开始更改DOM.在点击激活.load(‘something.PHP’)函数链接后,加载(‘something.PHP’)延迟3000ms? (浏览器应立即开始下载,但必须稍后启动DOM更改)

解决方法

改为使用 .get并在成功回调中分配内容

$.get('something.PHP',function(result) {
    $('body').html(result);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐