Javascript 实时更新获取请求

Javascript 实时更新获取请求,javascript,php,html,http,get,Javascript,Php,Html,Http,Get,使用javascript/另一种客户端脚本语言,我需要显示http get请求的结果,并在不刷新的情况下每X秒更新一次。我正在使用的api是外部的,其工作原理如下: 您向它发送一个请求,没有参数,它返回一个数字。我需要显示在一个静态的html网站,并实时更新它每2秒 到目前为止,我已经能够使用Math.random和setInterval等函数进行实时更新,但我的问题是在JavaScript内部向外部域发出GET请求。我有一个可以提供结果的php脚本,但我不知道如何将其集成到JS中,只需使用Aj

使用javascript/另一种客户端脚本语言,我需要显示http get请求的结果,并在不刷新的情况下每X秒更新一次。我正在使用的api是外部的,其工作原理如下: 您向它发送一个请求,没有参数,它返回一个数字。我需要显示在一个静态的html网站,并实时更新它每2秒


到目前为止,我已经能够使用Math.random和setInterval等函数进行实时更新,但我的问题是在JavaScript内部向外部域发出GET请求。我有一个可以提供结果的php脚本,但我不知道如何将其集成到JS中,只需使用Ajax和setInterval:

setInterval(function(){ 

//your Ajax call goes here 

}, 2000);

我强烈建议在api调用成功后再次调用函数。使用setInterval的解决方案可能会在出现错误时对站点造成冲击。此外,执行请求可能需要2秒以上的时间

为了简单起见,这里我使用jQuery

在success中使用setTimeout:

function getIt() { 
  $.get("url",function(data) { 
    $("#container").text(data); 
    setTimeout(getIt,2000);
  });
}
getIt();
如果URL是跨域的,您可能需要查看JSON和CORS:

欢迎来到SO。请访问,并采取的,看看如何和什么问题。提示:发布工作和代码。不要在Ajax上使用interval。@mplungjan不按此答案建议执行的原因是什么?为什么不在interval内使用Ajax呢?因为即使站点出现错误,您也可能会对其进行攻击。此外,请求执行所需时间可能超过2秒。主要原因是返回响应所需的时间尚未确定,因此在响应到来之前可能会发生多个调用back@mplungjan伟大的现在,访问者将知道为什么您的答案更好!那么,如果url是一个外部域,这会起作用吗?如果url允许它-即已设置CORS以允许您访问它或允许JSONP