javascript - JS主干加载图片

标签 javascript jquery firefox google-chrome-devtools

我正在运行一个应用程序,该应用程序在从服务器获取数据时显示“加载轮”。

在 Firefox 中一切正常,但在 Chrome 中则不然。

在 Chrome 中,只有在应用断点后我才能看到加载轮。

请求需要 3-4 秒才能完成。如果没有断点,我看不到装载轮。

我有这两个 jquery 包装器

hideLoadingImage = function() {
    $("#loading").hide();
  };

  showLoadingImage = function() {
    $("#loading").show();
  };

所以我称之为 -

myfunc: function(event){
showLoadingImage();
         TASK TO PERFORM --->
         new_model = new FormModel();
         new_model.url = model_url;
         new_model.fetch({ async: false });
         <---------
hideLoadingImage();
}

这仅在 Firefox 和 Chrome Debug模式下正常工作。 我想在 Chrome 中完成这项工作。

最佳答案

Backbone Model.fetch 委托(delegate)给 jQuery.ajax。 jQuery 1.8 及更高版本中已弃用 async:false 的使用:https://api.jquery.com/jQuery.ajax/

[..] As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated; you must use the success/error/complete callback options instead of the corresponding methods of the jqXHR object such as jqXHR.done() or the deprecated jqXHR.success().

您应该修改脚本以异步执行调用,并将 hideLoadingImage 移至回调中。

new_model.fetch({
success: function(){
        hideLoadingImage();
    }
});

这样,它将等到收到响应后再调用 hide,而不是在请求仍在进行时隐藏。

关于javascript - JS主干加载图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23517330/

相关文章:

javascript - $.ajax 显示 "�"而不是重音符号,例如 "é"或 "ã"

css - 显示内联 css 类或 id 定义的 Firefox 扩展?

javascript - 如何使我的 json 有效

javascript - 更改特定 div 内 h2 的类

Javascript调用区别

linux - selenium - webdriver - Firefox 64 位 Linux

javascript - 输入类型范围 slider 拇指在 Google Chrome 中不可移动

javascript - 模仿 javascript 中的对象 - 设计决策

javascript - 单击 'back' 按钮时 IE 不运行 Javascript

javascript - 将文本输入或选择选项发布到数据库,具体取决于选择哪个选项