我有这个php脚本:
<?php
$arr = array(array("a","b"),array("c","d"));
qq($arr);
function qq($arr){
foreach($arr as $ar => $r){
//getting some work done
//sending the array $r (or values)to javascript
}
}
?>
是否可以在数组1之前使用javascript获取数组0的值
我目前得到的是这个js从stackoverflow:
<script type="text/javascript">
function q(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "http://127.0.0.0.1/q.php");
xmlhttp.send(null);
xmlhttp.onreadystatechange = callbackFunction;
function callbackFunction(){
if (xmlhttp.readyState == 4){
xml = xmlhttp.responseText;
document.getElementById("q").value = xml;
}}}
</script>
但它没有做我想要的(我想我错过了什么)。
我的html:
<input type="submit" onclick="q();" />
<div id="q"></div>
<div id="q1"></div>
是否可以把数组0的值在div(id=q),当数组1准备好了,把它的值在div(id=q1)
通过XMLHttpRequest()的"正常" HTTP请求不允许在单个请求中出现这种行为。
您可以使用以下选项:
服务器发送事件
上行- 它们非常容易构建。服务器上不需要任何特别的东西。只需谷歌服务器发送的事件,你会发现一些例子,他们是如何工作的。
- 它们像任何其他http请求一样通过代理和防火墙,因为它是一个正常的http请求。
- 不能在Internet Explorer上运行(?) 如果某个代理缓存太多,
- 可能无法实时更新。然而,在这种情况下,它仍然工作,它只是错过了实时通信
Websockets
上行适用于所有最新的浏览器。使您能够进行全双工通信,并使您需要的一切正确。
缺点- 可能通过代理工作,也可能不通过代理工作,这取决于它们的配置。
- 服务器上需要特殊扩展
(长)轮询
上行- 最佳兼容性(即使在旧浏览器中也能工作,没有代理或防火墙问题)
- 创建大量开销,因为它为每个消息创建一个新的http连接 你需要在某个地方存储中间结果,因为轮询请求来自不同的线程,而不是代码生成机制。
你能不能试试
if (xmlhttp.readyState == 4){
xml = xmlhttp.responseText;
document.getElementById('q').innerHTML=xml;
}}}