异步XMLHttpRequest send()在所有数据发送之前返回?
问题描述:
当你做这样的事情异步XMLHttpRequest send()在所有数据发送之前返回?
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
在send()函数触发一个线程(或类似的东西)来同时发送HTTP消息,或发送,然后只有在所有的数据发送返回?
答
xmlhttp.send()永远不会返回,它是无效,它只能使请求到服务器,您创建的XMLHTTP对象有一个名为的onreadystatechange方法,该方法被调用时,你的异步请求成功或失败,反正你的应用程序流程没有被破坏,它继续下去。 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
+0
哈哈,所以void函数不会返回?他们不终止?哈哈哈。 此答案无效。我询问send()函数是否在所有TCP套接字完成之前终止。 – matheuscscp
首先,Ajax是一种技术,XHR对象就像API一致的类型实例......当您向资源(uri,endpoints)发送请求时。客户端和服务器之间的连接(流)被建立,并且它一直保持打开状态,直到它关闭。如果您询问建立的连接是否保持打开状态,直到所有数据都发送完毕,答案是连接可以被切断事情;在响应被缓冲时,流可以被用户代理/客户端关闭......这是暂定的,但是当服务器写入所有数据时,服务器将关闭流。我会找到规格。 –
好的。更具体。我有一堆字节通过套接字连接发送,对吧?如果在send()返回后,我做了类似formfield.value =“”的操作,是否有丢失这些字节的风险? ? – matheuscscp
您的意思是如果您在发送请求后在下一个语句中修改表单域变量? –