我无耻地偷了Oleg的测试用例,并对其进行了一些调整以模拟长轮询。
load.html:
<!DOCTYPE html><head> <title>Demonstration of the jQery.load problem</title> <script src="http://pre.jquery.com/jquery-latest.js"></script> <script> jQuery(document).ready(function() { $('#main').load("test.php"); }); </script></head><body> <div id='main'></div></body></html>test.php:
<?php sleep(5);?><b>OK!</b>
结果很有趣:在Firefox和Opera中,在XMLHTTPRequests中没有显示加载指示器。Chrome让它旋转…我怀疑GoogleWave不再使用长时间轮询(例如,每隔X秒轮询一次,以节省资源),但是由于没有帐户,我无法对其进行测试。
编辑: 并且我弄清楚了:在加载中添加了一点延迟之后
test.php,该延迟可以尽可能小,在加载后加载指示器停止
load.html:
jQuery(document).ready(function() { setTimeout(function () { $('#main').load("test.php"); }, 0);});正如对另一个答案的评论所证实的那样,当浏览器重新获得控制权以完成页面渲染时,指示器会停止旋转。另一个优点是不能通过按来中止请求
Esc。



