Я реализовал счетчик кликов на сайте.Всякий раз, когда я захожу на свой веб-сайт, он не изменит то, что он обслуживает (и номер остается прежним)Ожидаемое поведение состояло в том, что это увеличивало количество кликов, но не увеличивало.
Я думал, что обслуживаемая страница кэшируется в браузере, поэтому я посмотрел некоторые результаты по переполнению стека.В некоторых SO ответах предлагается поставить header("Cache-Control: no-cache, must-revalidate");
для современных браузеров.Это, казалось, заставило страницу полностью перезагрузиться, но число не изменилось.Результат был все тот же.Затем я попробовал на другом устройстве, и он показал тот же номер (счетчик не пошел вверх).Я попытался снова с полностью отключенным кэшированием.Все еще ничего!
Тогда я подумал, что вместо этого страница может быть кэширована на сервере.Я снова посмотрел некоторые результаты на SO, и кто-то предложил clearstatcache();
, но это не помогло.
Дальнейшее расследование показало, что запуск php index.php
в каталоге работает должным образом.Счетчик увеличился, и содержимое страницы вылилось в консоль.Я обновил страницу в своем браузере (без кеша), и число увеличилось до того, которое вылилось в мою консоль.Но это не увеличилось, когда обновилось последовательно.
Мой код PHP: (index.php
)
<?php
clearstatcache(); //tried this but it doesn't help
header("Cache-Control: no-cache, must-revalidate"); //Also doesn't help
$hits = exec("python3 hitsAdd.py"); //Execute a Python Script.
?>
<!-- [unimportant html] -->
<?php echo "$hits";?>
Код моего Python 3: (hitsAdd.py
)
try:
f = open("hits.txt")
hits = int(f.read())
f.close()
except:
hits = 0
print(hits)
hits += 1
f = open("hits.txt", "w")
f.write(str(hits))
f.close()
hits.txt
- это файл, которыйсодержит только номер.Например:
10