簡體   English   中英

如何使用PHP進行Ajax長輪詢-MySQL

[英]How to make ajax long polling with php - mysql

我做了php代碼,它從Asks表獲取未讀取的行:

$sqlanum = "SELECT id FROM asks WHERE answer='' AND profile='1' AND askdate>now()";
$queryanum = mysqli_query($db_conx, $sqlanum);
$rowanum = mysqli_num_rows($queryanum);

我對Ajax長輪詢不熟悉,我只是讀了幾篇文章,在搜索了簡單的Ajax長輪詢示例后,我做了這樣的事情:

$.ajax({
        type: "GET",
        url: "chkasks.php",

        async: true, /* If set to non-async, browser shows page as "Loading.."*/
        cache: false,
        timeout: 50000, /* Timeout in ms */

        success: function(data){ /* called when request completes */
            //addmsg("new", data);
            setTimeout(chkAsks, 1000);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            setTimeout(chkAsks, 3000);
        }
    });
};

但是我不知道如何循環執行並在有結果的情況下中斷並繼續循環我沒有結果...

在您的PHP中,您可以添加echo $rowanum; ,它將在您的JavaScript中的data變量中發送$rowanum的值。

然后,您可以將成功回調更改為:

/* .... */
success : function(data) {
    if(data == 0) {
         setTimeout(chkAsks, 1000); //Where chkAsks is the function from which the ajax request is fired
    } else {
          console.log('$rowanum=' + data);
    }
} 
/* .... */

我不確定這是否正是您要尋找的東西...

暫無
暫無

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

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