Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX并不总是有效的_Javascript_Ajax - Fatal编程技术网

Javascript AJAX并不总是有效的

Javascript AJAX并不总是有效的,javascript,ajax,Javascript,Ajax,嗨,我是新的,我喜欢这个网站 我正在学习javascript,到目前为止,我已经做了很多教程,但我不能让ajax工作 我在学校里看到这个 var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveX

嗨,我是新的,我喜欢这个网站

我正在学习javascript,到目前为止,我已经做了很多教程,但我不能让ajax工作

我在学校里看到这个

   var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
现在我把一行改为

xmlhttp.open(“GET”,“ajax_info.php?day=“+document.getElementById(“day”)。值,true)

它应该根据一天而不是所有的天来读取信息

有时页面是空的,什么都没有发生,有时它工作,一切都在那里

若要复制,您可以连续3次按F5,它至少会失败一次


请帮我把剩下的头发留起来

问题是由于脚本加载太快,以至于“day”元素还没有出现

要修复此问题,只需添加一个事件处理程序以等待文档加载

您可以这样做:
document.addEventListener(“load”,functionName,false)
该函数将在适当的时间被调用,它应该可以工作

除此之外,我建议使用jQuery或MooTools之类的库,因为这样可以使代码更容易在多种浏览器上运行。在代码中,您正在检查用户必须创建请求的浏览器

使用jquery,您可以用一行代码完成所有代码,如下所示:

$(document).ready(function(){   // Wait for the document to load
    $.get("http://www.website.com?day="+$("#day").val());   // $.get will create an ajax, $("#day") is equivalent to getting an element by Id
});

您可以在

@karman上了解更多信息,因为没有看到完整的代码,所以不确定失败的真正原因。 我的测试页面在 我按F5刷新10次以上,但没有失败


请记住,您每次都需要等待页面完全加载,因为连接可能会很慢。

您的问题很严重,我打赌您的代码立即在块中,对吗?没有加载功能,我是说。。。可能重复,我建议在发布前搜索该网站是的,那么我该怎么做?对不起,我有confused@Karmen遇到
时,将立即执行
块中的脚本。将其置于
之前时,ID为“day”的元素可能不存在(尚未)。为了让它发挥作用,推迟执行。或者使用
window.onload=function(){/*您的代码在这里*/}
,或将
..
移动到
元素之后。也请检查此链接第二个答案包含有关脚本放置顺序的一些信息,与您遇到的问题不直接相关,但它应该可以帮助您在以后的测试中避免犯很多错误,因为您确实很有帮助,既然没有人回答,我就把你的答案记为helpful@Karmen警告:jQuery看起来很简单,但在了解JavaScript和DOM的工作原理之前,不要开始使用它。否则,您将成为这些jQuery开发人员中的一员,他们不知道如何在没有jQuery的情况下编写简单的东西。学习JavaScript最好的地方不是W3Schools,因为[problem reliability](httP;//w3dougs.com/)。访问获取关于JavaScript、CSS、HTML和相关技术的#1文档。没错,我同意mozilla拥有最好的JS和CSS文档,也是最结构化的,我从未将其用于HTML,但它肯定比w3schools好,@RobW nice interference:D