Php i';我正在编写脚本,但我在加载页面时遇到了问题

Php i';我正在编写脚本,但我在加载页面时遇到了问题,php,status,Php,Status,我正在制作一个网站(php),显示游戏服务器是在线还是离线。 我设法想出了一些办法,并使之发挥作用。 但问题是,如果多台服务器脱机,网站需要10-20秒才能加载 如果服务器在线,则立即加载 有没有一种方法可以让网站在服务器离线时立即加载 这是主要功能(其余是ip和服务器名称) 在服务器中创建一个cron作业,每1分钟运行一次此代码,然后将结果保存到数据库中。 您的live web站点可以快速从数据库加载服务器状态,还可以使用ajax避免页面刷新。这可能是因为您必须等待超时才能说服务器处于脱机状态

我正在制作一个网站(php),显示游戏服务器是在线还是离线。
我设法想出了一些办法,并使之发挥作用。
但问题是,如果多台服务器脱机,网站需要10-20秒才能加载

如果服务器在线,则立即加载

有没有一种方法可以让网站在服务器离线时立即加载

这是主要功能(其余是ip和服务器名称)


在服务器中创建一个cron作业,每1分钟运行一次此代码,然后将结果保存到数据库中。
您的live web站点可以快速从数据库加载服务器状态,还可以使用ajax避免页面刷新。

这可能是因为您必须等待超时才能说服务器处于脱机状态。使用AJAX调用进行检查可能是一个好主意,这样您可以在检查脱机服务器时显示正在加载的gif或其他内容,而在线服务器将快速显示。使用AJAX。启动页面并在加载完成后启动异步ajax调用。当他们完成后,刷新页面上的服务器状态。这并不困扰我,但后来我发现类似的网站没有这个问题。。我无法解释他们是如何做到的。@user2745790如果您不喜欢AJAX方式和/或发现其他服务在没有AJAX的情况下可以立即做到这一点,一个可能的解决方案是定期从您的服务器检查这些服务器的可用性,将状态保存在服务器上,从而静态地为网页提供服务。感谢您的快速回复,我很感激iti采用cron job/mysql的方式,它工作得非常完美。。。谢谢你们的帮助,伙计们。。。干杯
function pingDomain($domain){

    global $sport, $lport, $port, $l1, $l2;

    if ($domain == $l1){
        $port = $lport;
    }
    else if ($domain == $l2){
        $port = $lport;
    }
    else{
        $port = $sport;
    }

    $starttime = microtime(true);
    $file      = @fsockopen($domain, $port, $errno, $errstr, 1);
    $stoptime  = microtime(true);
    $status    = 0;

    if (!$file) $status = -1;  // Site is down
    else {
        fclose($file);
        $status = ($stoptime - $starttime) * 1000;
        $status = floor($status);
    }
    return $status;
}