Я использую этот код для обновления моего основного DIV на моей главной странице (с именем readings.php):
jQuery(document).ready(
function intervalle() {
setInterval(jQuery('#myMainDiv').load('readings_content.php'), 10000);
});
В файле readings_content.php показания датчиков проверяются из базы данных и рисуются экраны, похожие на экраны камеры безопасности, в соответствии с количеством датчиков. Этот код похож на:
$db_sensors->query("select * from tbl_sensors where status=1");
if ($db_sensors->recordcount>0){
while ($db_sensors->nextrow()){
$sensors=$db_sensors->fields;
$sensorname = $sensors["name"];
$sensorvalue = $sensors["lastreading"];
echo "<div>";
echo "Sensor Name: ".$sensorname."<br>";
echo "Last Reading: ".$sensorvalue;
echo "</div>";
}}
Эта идея работает нормально. Но из-за этого цикла (есть 9-16 датчиков) обновление занимает много времени. Обычно это нормально, потому что страница не перезагружается, а просто изменяет значения, когда она читает новое показание датчика. Но есть кнопка на моей главной странице (readings.php). Время отклика для этой кнопки составляет почти 10 секунд, даже если я использую локальную базу данных.
Я хочу сделать этот процесс обновления быстрее. Или, если это возможно, я хочу остановить это обновление (или то, что когда-либо происходит на странице), когда я нажимаю кнопку. и сделайте его событие onClick рабочим.
После всех моих исследований я начал пробовать разные варианты. И это было нормально только когда я изменил код jQuery следующим образом:
setTimeout('sensorcells_load()', 10000);
function sensorcells_load()
{
jQuery('#sensorcells').load('dashboard_content.php');
setTimeout('sensorcells_load()', 10000);
}
Я не jQuery, и я действительно не знаю, почему этот работает, а другой нет. Но это решило мою проблему.
Других решений пока нет …