问题描述
第一个长期民意测验工作正常,但第二个无效。另外,除非我中止第一次长轮询,否则所有ajax请求都无法正常工作
长时间轮询是否正常?
这些是ajax请求。
function CheckExpired() {
console.log("Checking Expiry");
CheckExpirationVar = $.ajax({
url: 'CheckExpiry.PHP',type: 'POST',success: function(data){
// Logs data and reloop
console.log(data);
CheckExpired();
}
});
}
function CheckDB(TradeID) {
CheckDBVar = $.ajax({ url: 'CheckDB.PHP',data: {
ID: TradeID
},success: function(data){
console.log(data);
lastID = obj.id
// Logs data and returns to loop
CheckDB(lastID);
}
});
}
第一个用于CheckDB ajax。
<?PHP session_start();
// set PHP runtime to unlimited
set_time_limit(0);
include "../PHP/ConnToDB.PHP";
$sql = "SELECT * FROM Transaction WHERE EntryTime >= Now() - INTERVAL 20 SECOND ORDER BY ID DESC";
while(true) {
$result = MysqLi_query($conn,$sql);
if (MysqLi_num_rows($result) > 0) {
while ($TradeRow = MysqLi_fetch_assoc($result)) {
if ($_POST["ID"] == $TradeRow["ID"]) {
sleep(1);
continue;
}
// Check if one of the Trades of the user is the same
$Tradesql = "SELECT * FROM UserTransactions WHERE UserID = {$_SESSION['UserID']}";
$TradeResult = MysqLi_query($conn,$Tradesql);
if (MysqLi_num_rows($TradeResult) > 2) {
sleep(1);
continue;
} else {
while ($temp = MysqLi_fetch_assoc($TradeResult)) {
$Trades[$temp["TradeID"]] = 123;
}
}
// START THE CHECKING OF THE NEW TradE
if (!isset($Trades[$TradeRow["ID"]]) && isset($_SESSION["Traders"][$TradeRow["MasterID"]])) {
$Investment = $_SESSION["Traders"][$TradeRow["MasterID"]]["Investment"];
$_SESSION["CurrentTrade"] = array(
"ID" => $TradeRow["ID"],"TraderID" => $TradeRow["MasterID"]
);
$returnArr = array(
"id" => $TradeRow["ID"],"direction" => $TradeRow["Direction"],"expiration" => $TradeRow["Expiration"],"assetID" => $TradeRow["Asset_ID"],"Investment" => $Investment,"TraderID" => $TradeRow["MasterID"]
);
echo json_encode($returnArr);
exit;
}
}
}
}
?>
这是针对支票到期的ajax调用。
<?PHP session_start();
// set PHP runtime to unlimited
set_time_limit(0);
include "../PHP/ConnToDB.PHP";
$sql = "SELECT * FROM UserTransactions WHERE UserID = {$_SESSION["UserID"]} AND ExpirationDate <= Now()";
while(true) {
$result = MysqLi_query($conn,$sql);
if (MysqLi_num_rows($result) > 0) {
while ($row = MysqLi_fetch_assoc($result)) {
$deletesql = "DELETE FROM UserTransactions WHERE TradeID = {$row['TradeID']}";
MysqLi_query($conn,$deletesql);
$return = array(
"TransactionID" => $row["TransactionID"],"TraderID" => $row["TraderID"]
);
echo json_encode($return);
exit;
}
}
}
?>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)