javascript - Ajax 响应需要时间来填充

标签 javascript ajax dojo

我有一个不属于我的 util 类。我正在调用该 util 类的方法之一,该方法又调用一个 ajax 函数。并给我回复。

我需要根据响应对象做出决定。问题是响应对象需要一些时间来填充(毫秒)。

var selector = dojo.byId("SelectorId");
var theChart = new chart( selector, 135, 92, style, frequency, time);

if(theChart.data ===null){
    console.log("No response");
}else{
    Console.log("Use response data");
}

chart( selector, 135, 92, style, frequency, time);

不属于我所有。 Chart() 来自 util 类。

上面的代码片段可以很好地使用断点。但是当我删除断点时,它总是开始进入“if” block 。

如何解决这个问题。

最佳答案

如果您使用setTimeout,它应该可以解决您的问题:

 var selector = dojo.byId("SelectorId");
 var theChart = new chart( selector, 135, 92, style, frequency, time);

 setTimeout(function(){
  if(theChart.data ===null){
   console.log("No response");
  }else{
   Console.log("Use response data");
  }
 }, 100);

或者,您可以使用setInterval。下面的示例检查变量 avery 100msecs,并在 N=10 次尝试后返回“false”:

 var maxTries = 10;
 var checkFunction = function(){
  if(theChart.data === null){
   --maxTries;
  }else{
   Console.log("Use response data");
   clearTimeout(checkFunction);
   return;
  }
  if( 0 == maxTries ) {
   console.log("No response");
   clearTimeout(checkFunction);
  }
 } ;
 setTimeout(checkFunction, 100);

关于javascript - Ajax 响应需要时间来填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4546674/

相关文章:

javascript - jQuery/JavaScript 查找表列中的最高值

php - PHP 和 mySQL 的实时事件监听器

javascript - 如果库吞噬了所有异常,我该如何调试基于 promise 的异步代码?

javascript - 将回调附加到发布

javascript - HTML倾斜图像?

javascript - 如何在 jQuery 中捕获 $.each 中的最后一次迭代?

javascript - 在动态插入的文本字符串上触发 jQuery

javascript - 使用 CDN 缓存网页的部分内容

php - 如何通过 AJAX 请求发布包含特殊字符(例如 '&' 特别)的长字符串?

javascript - 使用 dojo 检查 id 是否存在