JS 中的迭代、JSON 和回调

iteration, JSON and callback in JS

(使用 Google 翻译器翻译) 嗨,我正在学习 javascript,我正在尝试模拟 yahoo finance 页面上股票报价的变化。

我阅读了来自 Whosebug 页面的许多回复,然后我就这样做了。

http://js.do/code/53880 如果您使用 google chrome,进入控制台大约一分钟后会出现错误。 Control -Shift -J(控制台选项卡/错误)

错误: net::ERR_INSUFFICIENT_RESOURCESjquery-1.9.1.js:8336 sendjquery-1.9.1.js:7978 jQuery.extend.ajaxVM8678:12 更新

页面也很滞后

$(function(){
$(function() {
 setInterval(update, 0);
});


function update() {
 var query = "select * from yahoo.finance.quotes where symbol = ";
 var symbolo = "'AAPL'"; 
 var yql = "http://query.yahooapis.com/v1/public/yql?q=" + escape(query+symbolo) + "&format=json&diagnostics=true&env=store://datatables.org/alltableswithkeys&callback=?";
 var xhr2 = $.ajax({ 
  url: yql,
  jsonp: "myCallback",
  dataType: 'jsonp', 
  success: function(data) {
   var keys = data.query.results.quote;
   $("#a").html(keys.LastTradePriceOnly);   
  }, 
  error: function (xhr, ajaxOptions, thrownError) {
   alert("oth1"+xhr.statusText); 
   alert("oth2"+xhr.responseText); 
   alert("oth3"+xhr.status); 
   alert("oth4"+thrownError);
  }
 });
} 
});

setInterval(update, 0);

您一直在尽可能快地产生 Ajax 请求。然后你 运行 资源不足(可能在第一个请求被处理之前)。

运行 update 函数 一次 ,然后从 setTimeout 内部再次调用它(最好使用基于 setTimeout 的延迟) =13=] 和 error 函数。