Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
Ajax调用期间会发生什么?_Ajax_Jquery_Ajaxcontroltoolkit_Ajax4jsf - Fatal编程技术网

Ajax调用期间会发生什么?

Ajax调用期间会发生什么?,ajax,jquery,ajaxcontroltoolkit,ajax4jsf,Ajax,Jquery,Ajaxcontroltoolkit,Ajax4jsf,你们能告诉我ajax浏览器背后发生了什么吗。。。 我只知道在不刷新页面的情况下,所有数据都已加载 这是我的密码 <script> function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE

你们能告诉我ajax浏览器背后发生了什么吗。。。 我只知道在不刷新页面的情况下,所有数据都已加载

这是我的密码

<script>
function loadXMLDoc()
{
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();
}
</script>

函数loadXMLDoc()
{
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”,“ajax_info.txt”,true);
xmlhttp.send();
}

发出AJAX请求时,浏览器会向给定地址发送HTTP请求。请求另一端的服务器响应,并将数据返回到浏览器。这与导航到新网页时发生的情况相同

AJAX的不同之处在于,它不是导航到新页面并直接显示,而是获取响应数据并将其封装在JavaScript变量中。然后可以使用JavaScript操纵该变量并将其动态插入页面

就这样!对你来说,唯一可能仍然有点神秘的是这句话:

xmlhttp.onreadystatechange=function()
这样做的目的是将事件附加到实际执行请求的
xmlhttp
对象。每次对象的“就绪状态”更改时,事件都会激发。“就绪状态”是请求状态的一种状态指示器。AJAX请求通常经历五个阶段:

  • 未发送(0)
  • 已开放(1)
  • 收到的标题(2)
  • 装载(3)
  • 完成(4)
在请求到达“完成”阶段之前,您的数据不可用。通过检查就绪状态代码4,可以有效地检查请求是否已完成。请注意,在某些浏览器中,您还可以使用上面定义的常量检查状态,但由于这些常量不是在所有浏览器中都通用定义的(Opera是一个明显的例外),因此最好还是坚持检查数字代码

还值得一提的是,并非所有浏览器都可以访问所有就绪状态。代码4几乎是一个安全的赌注,但是一些早期的代码并不总是实现的。本文将更深入地讨论以下主题:


与就绪状态代码一起检查的另一件事是HTTP状态代码。您检查它是否等于200,因为200的代码表示请求正常执行。当请求未成功完成时,其他代码将返回给您。HTTP代码列表可以在这里找到。

谢谢你的回答,我还有另外一个问题,我在动画中使用了+=这意味着什么?知道++,--和==操作符只在$(“按钮”)下面提供我的js代码。单击(函数(){($(“div”)。动画({左:'250px',高度:'+=150px',宽度:'+=150px'};})i+=n是i=i+n的简写。因此,i++在功能上与i+=1相同,但+=(在您的示例中使用)的明显优势是+=允许除1之外的增量。