Как предотвратить "Server Clock" для хранения кэшированных данных? - PullRequest
0 голосов
/ 03 апреля 2020

Я создал «Часы сервера» для сайта фанатов игр, который я запускаю. Но когда я снова посещаю некоторые страницы, часы используют кэшированные данные и, следовательно, показывают неверное время. Если вы «мягко обновите» sh на странице, она будет повторно проверять данные. Тем не менее, первый повторный визит не будет повторной проверки.

Я пробовал так много разных вещей, и ничего не работает ... он показывает кэшированные данные.

Например, если я захожу на страницу в 20:00 UT C, она кэширует эти данные. Затем, если я вернусь на ту же страницу, независимо от того, который час, она отобразит ~ 20:00 UT C при первом повторном посещении.

Я установил PHP и JS в файле .htaccess:

"

# JS / PHP
<FilesMatch "\.(php|js)$">
Header set Cache-Control "max-age=0, no-store, must-revalidate"
</FilesMatch>

"

Я также установил следующие в верхней части данных Серверных часов php:

"   
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
"

Но все еще кэширует время ....

Это простые часы. Он использует PHP, чтобы получить текущее время сервера. Затем я использую javascript в качестве часов, тикающих каждую секунду.

Кто-нибудь понимает / может ли кто-нибудь помочь?

Спасибо!

Сам код:

<?php
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");

    date_default_timezone_set('UTC');
    $clock_hours = date("G");
    $clock_minutes = intval(date("i"));
    $clock_seconds = intval(date("s"));
?>

<div id="clock_cont"></div><br />

<script type="text/javascript">
var clock_hours = '<?php echo $clock_hours; ?>';
var clock_minutes = '<?php echo $clock_minutes; ?>';
var clock_seconds = '<?php echo $clock_seconds; ?>';

function update_clockTime(){
  clock_seconds++;
  if(clock_seconds > 59){
        if (clock_seconds > 60)
            {clock_seconds = 0;}
        else {clock_seconds = 0;}

        clock_minutes++;
        if(clock_minutes > 59){
            if (clock_minutes > 60)
                {clock_minutes = 0;}
            else {clock_minutes = 0;}

          clock_hours++;
            if(clock_hours > 23){
                if (clock_hours > 24)
                    {clock_hours = 0;}
                else {clock_hours = 0;}
            }
        }
    }

    var clock_txt = 'Server Time: ';
        if (clock_hours < 10)
            {clock_txt += '0' + clock_hours + ' : ';}
        else 
            {clock_txt += clock_hours + ' : ';}

        if (clock_minutes < 10)
            {clock_txt += '0' + clock_minutes + ' : ';}
        else 
            {clock_txt += clock_minutes + ' : ';}

        if (clock_seconds < 10)
            {clock_txt += '0' + clock_seconds + ' ';}
        else 
            {clock_txt += clock_seconds + ' ';}

    clock_txt += '(UTC)';
    document.getElementById('clock_cont').innerHTML = clock_txt;

    if(clock_seconds > 61){clearInterval(interval_clockTime);}

}

var interval_clockTime = setInterval("update_clockTime()", 997);
</script>
...