【问题标题】:Ajax loader gif not working in ie and chromeAjax 加载程序 gif 在 ie 和 chrome 中不起作用
【发布时间】:2016-07-18 13:44:02
【问题描述】:

我正在尝试通过单击页面上的提交按钮来显示使用 ajax 的 gif 加载器。加载程序在 Firefox 中显示,但我在 IE 和 Chrome 中看不到它。当我删除 async: false 它在所有浏览器上都可以正常工作,但我希望它是同步的。 这是我的加载器代码:

        $.ajaxSetup({ cache: false, async: false });
    $(document).ajaxStart(function () {
        $('#imgloader').removeClass('loading').addClass('loading');
        $('#imgloader').show();
    });
    $(document).ajaxStop(function () {
        $('#imgloader').removeClass('loading');
        $('#imgloader').hide();
    });

【问题讨论】:

  • 为什么要做同步请求而不是异步请求?

标签: javascript ajax


【解决方案1】:

来自 JQuery 文档:

请注意,同步请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作。

所以基本上,浏览器正忙于同步请求,在完成之前不会做任何事情

如果你真的想做一个同步请求,你需要在发送请求之前显式地把类添加到你的div中

【讨论】:

  • 如何添加类?没看懂,可以举个例子吗
  • @sumedha 不使用 $.ajaxStart 和 $.ajaxAfter 注册回调,而是在执行请求之前和之后调用每个函数的两行
  • 怎么样?我还是不太明白。对不起,我对ajax完全陌生,这是我第一次使用它
  • @sumedha 如果您是 ajax 新手并且不了解执行同步请求而不是异步请求的含义,您应该使用异步请求。这是标准方式,会容易得多
猜你喜欢
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多