我有这个 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的值。
到目前为止我得到的是来自stackoverflow的js:
<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 请求不允许在单个请求中出现此类行为。
您有以下选择:
Server Send Events
上行空间
- 它们非常容易构建。服务器上不需要什么特别的东西。只需在 Google 上搜索服务器发送的事件,您就会找到一些有关其工作原理的示例。
- 它们像任何其他 http 请求一样通过代理和防火墙,因为这是正常的 http 请求。
缺点
- 不能在 Internet Explorer 上运行(?)
- 如果某处的代理缓冲过多,可能无法实时更新。然而在这种情况下它仍然有效,只是错过了实时通信
Websockets
上行空间
适用于所有最新的浏览器。使您能够进行全双工通信并获得所需的一切。
缺点
- 可能会也可能不会通过代理运行,具体取决于代理的配置。
- 服务器上需要特殊扩展
(Long-) polling
上行空间
- 最佳兼容性(即使在较旧的浏览器中也能正常工作,代理或防火墙不会出现问题)
缺点
- 会产生大量开销,因为它会为每条消息创建一个新的 http 连接
- 您需要将中间结果存储在某处,因为轮询请求来自与代码生成机制不同的线程到您的应用程序。
关于javascript - 如何使用 javascript 从 php 脚本交互获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581918/