簡體   English   中英

如何使用JavaScript從PHP腳本交互式獲取數據

[英]How to interactively get data from php script using javascript

我有這個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請求不允許在單個請求中出現這種行為。

您可以使用以下選項:

服務器發送事件

上邊

  • 它們非常容易構建。 服務器上不需要任何特別的東西。 只是用google搜索服務器發送的事件,您會找到一些有關它們如何工作的示例。
  • 它們像通過任何其他http請求一樣,也要通過代理和防火牆,因為這是一個正常的http請求。

缺點

  • 無法在Internet Explorer(?)上運行
  • 如果某處的代理緩沖過多,可能無法實時更新。 但是,在這種情況下它仍然有效,只是錯過了實時通信

的WebSockets

上邊

在所有最新的瀏覽器中均可使用。 使您能夠進行全雙工通信並正確處理所需的一切。

缺點

  • 可能會或可能不會通過代理工作,具體取決於它們的配置。
  • 服務器上需要特殊擴展

(長)輪詢

上邊

  • 最佳兼容性(即使在較舊的瀏覽器中也可以使用,代理或防火牆沒有問題)

缺點

  • 由於確實會為每條消息創建一個新的http連接,因此會產生大量開銷
  • 您需要將中間結果存儲在某個地方,因為輪詢請求與代碼生成機制相比,進入應用程序的線程不同。

你可以試試嗎

if (xmlhttp.readyState == 4){
  xml = xmlhttp.responseText;
  document.getElementById('q').innerHTML=xml;
}}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM