Javascript 多个ajax请求在一段时间后不起作用
我有一个页面,它连续(每秒)从服务器加载实时股票数据,并向名为data.php的php文件发出请求。我还有一个Ganns square of 9计算器,它使用ajax通过文本框的OnKeyUp函数将值传递给PHP文件(getdata.PHP),并返回一些输出 问题是- 当页面加载时,这两种方法都能很好地工作。可以使用实时数据和计算器。但是过了一会儿,计算器就不工作了。在将值写入文本框时,必须处理请求,并且必须通过ajax调用返回值,但这种情况不会发生 实时股票数据代码(每秒刷新):Javascript 多个ajax请求在一段时间后不起作用,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个页面,它连续(每秒)从服务器加载实时股票数据,并向名为data.php的php文件发出请求。我还有一个Ganns square of 9计算器,它使用ajax通过文本框的OnKeyUp函数将值传递给PHP文件(getdata.PHP),并返回一些输出 问题是- 当页面加载时,这两种方法都能很好地工作。可以使用实时数据和计算器。但是过了一会儿,计算器就不工作了。在将值写入文本框时,必须处理请求,并且必须通过ajax调用返回值,但这种情况不会发生 实时股票数据代码(每秒刷新): <sc
<script>
function showPort(t)
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("portfo").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","data.php",true);
xmlhttp.send();
setTimeout(showPort,t);
}
</script>
<script>
function showData(str)
{
if (str.length==0)
{
document.getElementById("txtData").innerHTML="";
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtData").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getdata.php?a="+str,false);
xmlhttp.send();
}
</script>
功能显示端口(t)
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“portfo”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”,“data.php”,true);
xmlhttp.send();
设置超时(显示端口,t);
}
它使用页面加载运行-
<body onload="JavaScript:showPort(2000);">
Ganns square计算器代码,该代码在textbox的KeyUp事件上运行:
<script>
function showPort(t)
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("portfo").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","data.php",true);
xmlhttp.send();
setTimeout(showPort,t);
}
</script>
<script>
function showData(str)
{
if (str.length==0)
{
document.getElementById("txtData").innerHTML="";
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtData").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getdata.php?a="+str,false);
xmlhttp.send();
}
</script>
函数showData(str)
{
如果(str.length==0)
{
document.getElementById(“txtData”).innerHTML=“”;
回来
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“txtData”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”、“getdata.php?a=“+str,false”);
xmlhttp.send();
}
运行textbox的onKeyUp事件-
<input type="text" placeholder="Last traded Price" name="str" onKeyUp="showData(this.value)">
我试图寻找类似的问题,但没有得到答案。因此,将此问题作为新问题发布在此处。第一个脚本:
function showPort(t)
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("portfo").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","data.php",true);
xmlhttp.send();
setTimeout(showPort,t);
}
可以通过以下方式进行转换:
$(document).ready(function(){
setInterval(function(){
$.get("data.php", function(data){
$("#portfo").html(data);
});
}, 2000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
下一个:
function showData(str)
{
if (str.length==0)
{
document.getElementById("txtData").innerHTML="";
return;
}
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtData").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getdata.php?a="+str,false);
xmlhttp.send();
}
可以重写为:
function showData(str)
{
if (str.length==0)
{
$("#txtData").html("");
return;
}
$.get("getdata.php?a="+str, function(data){
$("#txtData").html(data);
});
}
你能试着执行上面的代码,看看它是否有效吗?不要忘记以这种方式包括jQuery:
$(document).ready(function(){
setInterval(function(){
$.get("data.php", function(data){
$("#portfo").html(data);
});
}, 2000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
您不能使用jQuery吗?我在标签中看到了,但代码中没有任何内容!:)我不喜欢JQuery。但是,如果有一种简单的方法可以用JQuery实现,那么我就准备好了。:)@是的,伙计。这会更容易!那就帮我对付那个家伙。我会尝试这样做。:)因此,我不需要在页面加载时调用函数ri8??因此,我尝试了u给出的代码。第二组代码工作得很好,但第一组代码似乎不起作用。它不输出任何东西。该区域留空。我会再次划过代码,很快回到这里。@Chandanzha当然。。。等待……)第一组代码似乎不起作用。不返回任何数据。所以,让它工作。你犯了一个很小的错误,伙计!设置间隔(代码、延迟)