Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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:设置innerHTML后获取请求?_Javascript_Ajax_Logic_Innerhtml - Fatal编程技术网

Javascript AJAX:设置innerHTML后获取请求?

Javascript AJAX:设置innerHTML后获取请求?,javascript,ajax,logic,innerhtml,Javascript,Ajax,Logic,Innerhtml,使用W3School示例(): 使用变量的伪代码示例: var x=''或NULL var y=从服务器上的文件获取文本 var x=y onreadystatechange是一个侦听器,它不会立即执行,而是侦听该事件的XHR请求 当事件被触发时,例如当响应从服务器返回时,代码将被执行。在javascript中,不能保证每个代码都会一个接一个地执行。如果某行需要时间,则第二行开始执行。因此,如果需要某些执行优先级,则需要应用回调。对于Ajax,请遵循同步或异步方式。您还可以交换xhttp.onr

使用W3School示例():

使用变量的伪代码示例:

  • var x=''或NULL
  • var y=从服务器上的文件获取文本
  • var x=y
    onreadystatechange
    是一个侦听器,它不会立即执行,而是侦听该事件的XHR请求


    当事件被触发时,例如当响应从服务器返回时,代码将被执行。

    在javascript中,不能保证每个代码都会一个接一个地执行。如果某行需要时间,则第二行开始执行。因此,如果需要某些执行优先级,则需要应用回调。对于Ajax,请遵循同步或异步方式。

    您还可以交换
    xhttp.onreadystatechange
    xhttp.open()
    的顺序

    只有在执行
    xhttp.send()
    之后,才会将请求发送到服务器

    xhttp.onreadystatechange=function(){}
    中可以找到

    if(this.readyState==4&&this.status==200){
    //dom执行
    }


    这意味着在
    xhttp.send()
    将请求发送到服务器和
    readyState==4&&status==200

    之后执行dom,这是因为您正在为
    onreadystatechange
    分配一个函数,该函数将在以后响应到达时执行,然而,解释器继续执行剩余的代码。阅读异步JSPerfect。我来看看。谢谢你的帮助@Maximus解释器按原样“执行”代码,碰巧代码是一个函数声明。@pvg,是的,我知道:)。它实际上是函数expression@Maximus我们无法摆脱js人和他们疯狂的月亮术语!无论如何,(毫无保留地)一点是,即使对于他们可能已经知道的简单情况,posters的前提也是错误的:编写函数实际上不会调用它,因此即使没有异步,事情也不会按词汇顺序运行。
    <!DOCTYPE html>
    <html>
    <body>
    
    <div id="demo">
    <h1>The XMLHttpRequest Object</h1>
    <button type="button" onclick="loadDoc()">Change Content</button>
    </div>
    
    <script>
    function loadDoc() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          document.getElementById("demo").innerHTML =
          this.responseText;
        }
      };
      xhttp.open("GET", "ajax_info.txt", true);
      xhttp.send();
    }
    </script>
    
    </body>
    </html>
    
    document.getElementById("demo").innerHTML =
              this.responseText;