如何防止jQuery$('body').load('something.php');
更改任何DOM,直到something.php(包括图像,js)的所有内容完全 加载
- 可以说一些实际内容是:
Hello world
something.php
内容是:
image that loads for 10 seconds
20 js plugins
触发 .load() 函数后什么都不会发生,直到图像和 js 文件完全加载,并THEN
立即更改内容。
可能会出现一些预加载器,但它不是问题的主题。
[编辑] - - - - - - - - - - - - - - - - - - - - - - - - ----------------------
我的解决方案是跨浏览器不透明度为 0 的 css 代码(总是在构建 dom 之前加载 css)。
.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 加载的,并应用一些显示超时等等。但实际上问题仍然存在。
现在为这个问题做一个更简单的例子:
单击触发 .load('something.php') 函数的链接后,如何在 $('body').load('something.php') 之后以 3000 毫秒的延迟开始更改 DOM?(浏览器应该立即开始下载,但 DOM 更改必须稍后启动)