Я уже спрашивал об этой теме о том, как я могу преобразовать свой основной скрипт опроса в длинную структуру опроса, и пользователь из , который в посте сказал, что есть два этапа для длинного опроса.Структура на стороне клиента и структура на стороне сервера
, и он предложил мне снова задать этот вопрос, но на этот раз я упомяну больше о том, как я могу реализовать длинный опрос на стороне сервера.Поскольку он уже представил пример длинной структуры опроса на стороне клиента с помощью JavaScript.Итак, как я могу реализовать длинный опрос на стороне сервера для файла с именем
check-for-new-records.php ?
Вот остальная часть моего кода, чтобы лучше понять, что я имею в виду.
index.php
<style>
#label{
margin: 0;
color: red;
font-weight: bold;
}
</style>
<script>
document.addEventListener('DOMContentLoaded',function(){
/**********************************************************************
Check for a new record amount in the data base
**********************************************************************/
//Client side structure of long-polling
function checkForNewRecords() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
document.querySelector('#output').innerHTML = xhr.responseText;
setTimeout(checkForNewRecords, 0);
}
}
xhr.open('POST', 'check-for-new-records.php');
xhr.send();
}
checkForNewRecords()
});
</script>
<p id='label'>Total records in the database in real time in basic polling</p>
<div id='output'></div>
check-for-new-records.php
<?php
//Long polling in the server side code... How???
$db_servername= 'localhost';
$db_username='jd';
$db_password= '1234';
$db_name= 'test';
$db_connect= new mysqli($db_servername,$db_username,$db_password,$db_name);
$db_query= "SELECT COUNT(id) AS id FROM example";
$db_result= $db_connect->query($db_query);
$db_row= $db_result->fetch_object();
$total_records= $db_row->id;
?>
<style>
#total-records{
margin-top: 0;
}
</style>
<p id='total-records'><?php echo $total_records; ?></p>