【发布时间】:2011-09-11 09:04:21
【问题描述】:
在 Google Chrome 中,AJAX 在 $(function(){....}); 内调用似乎保持页面加载。
我的网站有几个带有标签的页面。因为我使用的是廉价的 Godaddy 主机,所以我希望页面加载速度尽可能快。因此,我想在 1 个选项卡上加载一个页面,然后在后台使用 AJAX 加载其他选项卡。当我从
运行 AJAX$(function(){
/*AJAX CODE HERE */
});
光标显示页面长时间加载(http://jsfiddle.net/mazlix/7fDYE/9/)
我已经找到了一种方法(至少在 chrome 中)使用setTimeout(); (http://jsfiddle.net/mazlix/7fDYE/8/) 来解决这个问题,但这只有在您正确预测窗口何时完成完全加载并且显然需要更长的加载时间时才有效.我想要一种在页面加载后立即通过 AJAX 加载内容的方法,因此在等待返回的 AJAX 时不会显示“忙碌光标”。
【问题讨论】:
-
还有其他的吗?看看我的 jsfiddles 的代码.. 如果我做错了 AJAX 调用虽然我不知道为什么会出现..
-
FWIW 它在 FF4 和 IE9 中运行良好。如果
setTimeout技巧在 Chrome 中处理它,那么我会说去吧。我不确定为什么 Chrome 会选择这种行为:例如这是故意的还是副作用? (AJAX/XHR 可以同步运行,但不是在那个例子中。) -
请在下面重新测试我的答案,使用 window.load 而不是准备好文档。我相信它现在有效。
-
我没有看到 chrome 中的光标有任何问题,请查看我的 jsFiddle
标签: javascript jquery ajax google-chrome loading