在IE和Chrome中没有显示加载的gif图像

Moh*_*dey 15 javascript ajax jquery

我正在使用JQuery ajax调用向服务器发送同步调用,并希望显示当时的加载图像.

但加载图像在Firefox中可见,但在IE和Chrome中不可见.当我调试时,我发现在IE中,当我们调用java脚本时,它会停止显示浏览器中的更改,因为它会停止DOM,并且当调用完成时,它会显示所有更改.由于我在ajax调用上显示加载图像并在完成调用后将其删除,因此IE不会显示任何图像.

但是当我使用警告框时,它会显示IE中的加载图像,因为它会停止线程,直到我们响应它.

是否有任何方法可以停止java脚本执行一毫秒,以便IE执行暂停并显示加载图像.

我已经尝试过ajaxSend,ajaxComplete,ajaxStart,jQuery的ajaxStop和java脚本的timer事件,但是没有得到任何解决方案.

任何帮助都是宝贵的,提前谢谢.

Ser*_*riu 10

在XHR的上下文中,同步意味着浏览器冻结直到请求完成.如果您想要确保在给定时间只运行一个请求,则使用您自己的标志来指示请求正在进行中.

根据定义,请求的同步标志意味着必须停止任何其他活动.我很惊讶它甚至可以在Firefox中运行,上次我尝试它不起作用,但那是很久以前的事了.所以忘掉它,没有办法让它在所有浏览器中都能运行.即使您使用a延迟请求setTimeout,最多也会得到一个带有非动画gif的冻结浏览器.当用户冻结浏览器时,用户不喜欢,特别是如果请求可能需要超过一秒的时间.

不要依赖浏览器的安全性或正确的功能相关功能.如果客户端并行执行两个请求,您的应用程序可能会损坏,那么您在服务器端就有一个错误.没有什么可以阻止恶意用户使用除普通UI之外的其他工具来发出并行请求.