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.com/support/website/htaccess/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/questions/32414/how-can-i-force-clients-to-refresh-javascript-files

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