使用jQuery的PHP / SQL彗星没有充斥数据库?

时间:2015-11-30 11:45:53

标签: php jquery mysql comet

我正在弄清楚彗星如何与PHP和jQuery一起工作,现在我让它使用文件和修改日期。但是,如何在不完全充斥我的数据库的情况下使用SQL正确地执行此操作?

我的文件彗星:

<?php
    set_time_limit(0);
    $file = "file.txt";
    $last = filemtime($file);
    $current = time();

    while($current >= $last) {
        usleep(10000);
        clearstatcache();
        $last = filemtime($file);
    }

echo "YES";

jQuery的:

function wait() {
    $.ajax({
        url: "get.php",
        async: true,
        success: function(data) {
            alert(data);
            wait();
        }
    });
}

$(document).ready(function(){
    wait();
});

现在,使用该文件可以正常工作,但是使用SQL我会假设我需要在每次循环时执行SELECT查询,这对服务器的请求过多。

我不是要求代码,我要求有关如何通过最小化服务器负载来实现这一目标。

编辑:

<?php
    set_time_limit(0);
    $connection = mysqli_connect("localhost", "root", "", "kleurmixer") or die (mysqli_error());
    $sql = "SELECT hue FROM tags";
    $sql = mysqli_query($connection, $sql) or die(mysqli_error());
    $assoc = mysqli_fetch_assoc($sql);
    $current = $assoc['hue'];
    $last = $assoc['hue'];

    while(true) {
        $sql = "SELECT hue FROM tags";
        $sql = mysqli_query($connection, $sql) or die(mysqli_error());
        $assoc = mysqli_fetch_assoc($sql);
        $last = $assoc['hue'];
        if($current != $last) {
            echo $last;
            return true;
        } else {
            sleep(5);
        }
    }

我做到了这一点,但是这仍然每隔5秒向数据库发出一次请求。现在,这对我的应用程序来说不是一个大问题,因为它将被1-5个人在max(私人网络服务器)使用,但我仍然希望最小化服务器负载。有什么想法吗?

0 个答案:

没有答案