私は自分のデータベーステーブル "サウンドボード"の状態の変化に迅速に対応する必要があります。ステータスが2に変更された場合、私のアプリケーションがそれに気づくことを望みます。より良い無限ループまたはajax/setIntervalコーム
それでは、無限ループの場合とajax/setIntervalスクリプトの場合の2つの例を作成しました。
まず無限ループ:
<?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;
?>
あなたが私を助けて、私が何をしようとしているのか理解してくれることを願っています。
は、WebSocketをしてみてください、AJAX setintervalsはおじいちゃんの技術です。あなたの無限ループでWebソケット – Vigikaran
でプレイする無料アカウントのPubnub、Pusherをチェックすると、PHP実行時間の制限がありますので、挿入スクリプトでWebソケットメッセージを追加して通知してください。 – Vigikaran
@Vigikaranウェブソケットはまだ比較的新しいすべてのブラウザが完全にサポートしています。 – JustLloyd