Wyczyszczenie pamięci podręcznej strony internetowej

0

Cześć,
Chciałabym przeładować (tzn. wyczyścić pamięć podręczną) moją stronę internetową, którą zaktualizowałam.
Próbuję różnych porad, tak aktualnie wygląda strona:

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="refresh" content="5" >

    <meta http-equiv='cache-control' content='no-cache'>
    <meta http-equiv='expires' content='0'>
    <meta http-equiv='pragma' content='no-cache'>

    <title>HEADER</title>

    <link rel="stylesheet" href="style_1.css">

    <!-- OVERLAP ICON -->
    <link rel="icon" type="image/png" href="img/mgl.png"/>

    <!-- FONTS --->
    <link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/bebas" type="text/css"/>

    <!-- BOOTSTRAP -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <script src="scripts.js"></script>

    </head>

<body>
    <header>
        <div class="container_countdown" id="countdown">                
            <div class="container_table"> 
                <!-- TABLE -->          
                <div class="row countdown_row margin">
                    <div class="col-md-12"> 
                        <p class="countdown_header_text main"/>LOREM</p>    
                    </div>
                </div>
                <div class="row countdown_row">
                    <div class="col-md-3">              
                        <p class="countdown_header_text header"/>DAYS</p>           
                        <p class="countdown_header_text timer" id="day">x</p>
                    </div>
                    <div class="col-md-3">              
                        <p class="countdown_header_text header"/>HOURS</p>      
                        <p class="countdown_header_text timer" id="hours">x</p>
                    </div>
                    <div class="col-md-3">              
                        <p class="countdown_header_text header"/>MINUTES</p>            
                        <p class="countdown_header_text timer" id="minutes">x</p>
                    </div>
                    <div class="col-md-3">              
                        <p class="countdown_header_text header"/>SECONDS</p>        
                        <p class="countdown_header_text timer" id="seconds">x</p>
                    </div>
                </div>  
            </div>  
        </div>  
    </header>   
</body>

<script>

var countDownDate = new Date(Date.UTC(2019,03,23,15,0,0,0)).getTime();

var x = setInterval(function() 
{
  var date = new Date();
  var now = date.getTime();

  var distance = countDownDate - now;

  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));

  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

    document.getElementById("day").innerHTML = days; 
    document.getElementById("hours").innerHTML = hours; 
    document.getElementById("minutes").innerHTML = minutes; 
    document.getElementById("seconds").innerHTML = seconds; 

  if (distance < 0) 
  {
    clearInterval(x);
    document.getElementById("countdown").innerHTML = "";
    window.location.href = 'url';
  }
}, 1000);

</script>

Wcześniej nie posiadałam met odpowiedzialnych za czyszczenie cache. Dodałam je dopiero w aktualizacji.

    <meta http-equiv='cache-control' content='no-cache'>
    <meta http-equiv='expires' content='0'>
    <meta http-equiv='pragma' content='no-cache'>

Podsumowując, chciałabym zmienić przykładowo jakiś tekst na stronie, wrzucić na serwer i aby każdy odwiedzający bez czyszczenia pamięci podręcznej widział najnowszą wersję strony.

1

jak używasz apacza, to możesz zrobić wpis w .htaccess:
https://www.inmotionhosting.c[...]cess/disable-caching-htaccess

0

Dodałam w folderze awstats w pliku .htaccess kod z tej strony (po prostu go dokleiłam) i nie działa. Może w inny sposób powinnam to zrobić?

1

Zawsze możesz do assetów pododawać wersjonowanie. Np. masz <link rel="stylesheet" href="style.css?v=1">, zmieniasz coś w stylach, to zmieniasz na <link rel="stylesheet" href="style.css?v=2">, itd.

Nie wyłączałbym cachowania całkowice, po co user ma być zmuszany za każdym razem zasysać na nowo pliki. Niech zasysa dopiero wtedy, gdy jest taka potrzeba. A jak nie ma potrzeby, to assety powinny siedzieć w cache.

cicha09 napisał(a):

Dodałam w folderze awstats w pliku .htaccess kod z tej strony (po prostu go dokleiłam) i nie działa. Może w inny sposób powinnam to zrobić?

Jeszcze na serwerze muszą być włączone potrzebne moduły, bo inaczej nie zadziała.

1

Albo wersje dać w zmiennej php i zmieniać tylko w jednym miejscu (zostają jeszcze inne typy plików).
Fajna opcja cloudflare i tylko "purge cache"

0

Korzystam z serwera linuxpl.com i support powiedział mi, że jeśli .htaccess umieszczę w public_html to powinien automatycznie się załadować. Jednak nie działo to tak jak chcę. Nie aktualizuje plików, które już wcześniej zostały zapisane w pamięci przeglądarki. Z dodaniem wersji do .css też próbowałam.

1

Tak jeszcze w temacie wersjonowania plików i przez parametr z wersją de facto wymuszania ponownego wczytania treści - znalazłem fajną uwagę/pomysł z tym związaną, którą pozwolę sobie przekopiować. Mam nadzieję, że SO się nie obrazi ;)

for those using some server-side dynamic language, if you can access the file's ctime, (or mtime), you can just add said time behind it. For instance in php, myfile.js?v=<?=filectime('myfile.js');?>, and there you've got yourself an auto updating cache for your resources

Ale tak w ogóle to się zastanawiam, w czym jest problem i czy nie masz czegoś skopanego. Na ogół takie rzeczy się z cache nie dzieją, zresztą przeglądarki weryfikują (nie pamiętam teraz, jak ten mechanizm działa) to, czy nie miała miejsca jakaś zmiana treści w stosunku do tego, co mają w cache. Pytanie - jak ten Twój błąd się objawia? Bo może problemów wcale nie ma, a Ty jedynie niepotrzebnie starasz się dmuchać na zimne?

1

cerrato - sytuacja wygląda tak, że miałam na stronie internetowej zrobione odliczanie, w godzinie 0 strona przeładowała na inną stronę (zewnętrzną, nie na moim serwerze). Teraz chciałabym użyć tej strony do innego odliczania. I tak zrobiłam - jest ustawione odliczanie na za 5 dni. Jednak jeżeli ktoś nie wyczyści pamięci podręcznej widzi poprzednie odliczanie - co za tym idzie: ładuje mu tą stronę zewnętrzną z poprzedniego odliczania.

0

Dziękuję, Panowie. Udało mi się z Waszymi wskazówkami. :)
https://stackoverflow.com/que[...]s-to-refresh-javascript-files

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0