4

我有一个 HTML5 的 WebApp。

这是链接

我想异步加载整个网页。就像访问网页时一样,我想向用户显示加载图像,并且页面在后台以异步模式完全加载。我尝试异步加载脚本,但它并没有太大影响它的行为。

有没有办法做到这一点!

4

3 回答 3

2

渲染一个只有加载图像作为背景设置的空主体......在头部你有一个脚本标签,它对dom准备好进行ajax调用并加载所需的内容......

编辑:所需的内容当然应该包含所需的所有其他标记和脚本标记......然后用响应更新正文

document.body.innerHTML = request.responseText;

编辑 2:我建议用本机 javascript 编写该头脚本,因为您只需要小于 1kb 即可对定义的 url 进行干净(甚至跨浏览器 ajax 工作)调用......在您的 ajax 响应中,您可以确定什么都不会被覆盖或加载两次(如果加载库,可能还有 ajax 功能)

于 2012-04-22T11:19:45.080 回答
1

尝试使用与 Tobias Krogh 建议的方法相同的方法。

但不是通过使用普通的旧 JS 将内容放入#main

document.body.innerHTML = request.responseText;

使用 Jquery 使用 .html() 将内容放在正文中

$("body").html(request.responseText);

编辑:并使用 JS 加载器加载 CSS 和 JS。可能的 LazyloadYepNope,以异步加载它们。那应该做的工作!

于 2012-04-22T13:38:41.333 回答
0

您可以通过在您的 css 中设置某种带有 loader 的覆盖层来做到这一点,该覆盖层是可见的(起初),稍后在您的页面完全加载后,使用 javascripting 删除覆盖层(淡出)...

像这样http://jsfiddle.net/6Ldyd/

当然,您应该制作某种回调函数以在页面的最后一个元素加载后删除覆盖(或在加载最后一个元素后调用它的脚本)

于 2012-04-22T11:20:25.673 回答