Что лучше, бесконечный цикл или ajax / setInterval гребень

php ajax

43 просмотра

1 ответ

Я должен быстро реагировать на изменение статуса в таблице базы данных «Soundboard». Если статус изменится на 2, я хочу, чтобы мое приложение это заметило.

Так что лучше, я создал 2 примера, один для бесконечного цикла и один для сценария ajax / setInterval.

Сначала бесконечный цикл:

<?php

// Settings & Connection
set_time_limit (0);
$data = array(
    "id"    =>  "",
    "file"  =>  ""
);
$db = new mysqli('p:localhost', 'username', 'password', 'database');

// Query 2 DB
$sql = "SELECT id, name, file FROM soundboard WHERE status = 2 LIMIT 1;";

while(TRUE) {
    $result = $db->query($sql);

    if($result->num_rows > 0) {
        // Fill $data here
        echo json_encode($data);

        break;
    }
    unset($result);

    sleep(5);
}
$db->close();
unset($db, $data, $sql);
exit;

?>

Или это лучше для исполнения?

<?php

// Settings & Connection
$data = array(
    "status"    =>  0,
    "id"        =>  "",
    "file"      =>  ""
);
$db = new mysqli('localhost', 'username', 'password', 'database');

// Query 2 DB
$sql = "SELECT id, name, file FROM soundboard WHERE status = 2 LIMIT 1;";
$result = $db->query($sql);

if($result->num_rows > 0) {
    // Fill $data here
}

$db->close();
echo json_encode($data);
unset($db, $data, $sql);
exit;

?>

Я надеюсь, что вы можете помочь мне и понять, что я пытаюсь сделать.

Автор: TobiasHH Источник Размещён: 08.11.2019 11:09

Ответы (1)


0 плюса

Прежде всего, бесконечный цикл - это всегда риск. НО, если вам нужно сделать это, я думаю, что лучше, если вы делаете это на стороне клиента:

Прежде всего, вы должны позаботиться о вашем сервере, потому что если кто-то блокирует его ... Если пользователь блокирует свой ПК, это просто ПК, просто пользователь.

Во-вторых, если вам нужно постоянное открытое соединение (например, бесконечный цикл PHP), возможно, вы предпочитаете открывать Socket Like в программе PHP Chat.

Насчет производительности, A Shocket это лучшее решение (на мой взгляд).

Вы можете проверить эту ссылку: https://www.sanwebe.com/2013/05/chat-using-websocket-php-socket

Автор: Slashhh Размещён: 20.08.2016 10:27
Вопросы из категории :
32x32