5

我在一个嵌入式项目上大吃一惊:Microchip 以太网/wifi。我有一个通过 ajax 加载数据的网页。由于大小限制,我没有使用 jquery,只使用 Javascript AJAX。

问题:在Firefox中似乎一切都很好。但是在 Chrome 中,它会启动,如果我刷新,AJAX 就会停止工作(有时,在反复刷新之后)。控制台中没有记录错误。

我创建了一个精简的演示

pastebin.com/test4/ajaxTest.html。它仅使用mchp.js来自微芯片演示的。该页面通过 AJAX 从另一个页面加载一个数字。这会重复 100 毫秒,如果我在 5 秒内无法得到任何东西(即约 50 次尝试),它就会超时。

recreate this error,在 Chrome 中打开演示链接,并保持刷新。我有 5 秒的时间。我正在使用latest version of Chrome. 感谢任何提示。谢谢。

注意:一旦它坏了,即使我不断刷新,它也不会起作用。但如果我关闭标签并打开一个新标签,它就可以工作。

4

3 回答 3

3

感谢@kol,认为这是一个缓存问题。所以我在参数中用随机数修改了url。似乎现在正在工作。

于 2013-08-19T18:32:17.730 回答
2

WireShark 显示,一段时间后,您的 AJAX 代码将HTTP/1.1 304 Not Modified变为HTTP/1.1 200 OK. 我认为答案会被 Chrome 缓存。您可以将随机数参数附加到 URL 以防止缓存(请参见此处)。

于 2013-08-20T21:23:24.987 回答
0
function getXMLHTTP() { //function to return the xml http object
var xmlhttp=false;  
try{
xmlhttp=new XMLHttpRequest();
}
catch(e){       
try{            
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}

return xmlhttp;
}

function getdef()
{
alert('str');
if (str=="")
{
document.getElementById("def1").innerHTML="";
return;
}
if (window.XMLHttpRequest)
于 2014-04-11T10:24:41.177 回答