Меню

Обновить страницу один раз, сразу после ее загрузки на JS и PHP

Иногда требуется обновить страницу один раз сразу после ее загрузки. Это может пригодиться в различных ситуациях, например, для выполнения перерасчета, обновления данных, подтягивания новой информации с сервера и так далее. Для этого можно использовать JavaScript, который запоминает, была ли уже обновлена страница, и при необходимости перезагружает ее.

Пример реализации на JavaScript:
Код
<script>
    if (localStorage.getItem("reload") === "false") {
        localStorage.removeItem("reload");
    } else {
        localStorage.setItem("reload", "false");
        window.location = window.location;
    }
</script>

Проверяем, есть ли в localStorage элемент с ключом reload, который равен "false". Если да, значит страница уже обновлялась, и мы удаляем этот элемент.
Если такой элемент не найден, добавляем его в localStorage со значением "false" и обновляем текущую страницу.
Таким образом, после перезагрузки страницы скрипт не будет повторно выполнять обновление, так как значение "reload" уже установлено в "false".

Вариант на PHP:
Для реализации аналогичной функциональности на PHP можно использовать сессии. При этом запрос на обновление будет выполнен только один раз после загрузки страницы.
Код
<?php
session_start();

if (!isset($_SESSION['reloaded'])) {
    $_SESSION['reloaded'] = true;
    header("Location: " . $_SERVER['REQUEST_URI']);
    exit();
}
?>

Мы используем сессию для хранения информации о том, перезагружалась ли страница.
Если переменная сессии reloaded не установлена, мы устанавливаем её в true и выполняем перенаправление на тот же URL с помощью функции header().
После перезагрузки переменная reloaded будет уже установлена, и обновление страницы больше не произойдет.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Блог-note: заметки разработчика

Увеличение диска на готовой виртуальной машине Битрикс

Как всем известно, на официальном сайте 1С-битрикс можно скачать готовую виртуальную машину максимально сконфигурированн...

Показ страницы сайта в боковом слайдере, на примере всплывающей формы обратной связи.

Если вы хотите сделать подгрузку любой страницы сайта в боковой слайдер, для этого в битриксе есть метод BX.SidePanel.In...

Memcached на сайте под управлением битрикс, при использовании Веб Окружения Битрикс

Если вам важна скорость отдачи сайта, а у вашего сервера медленный диск для использования кеша на файлах. Можно кеширова...

Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс

В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне корзины на 1С-Битрикс.

Получить и вывести пользовательские свойства склада в 1С-Битрикс

Задача: вывести пользовательские свойства в подробном описании склада. При этом, есть и множественные и одиночные поля.

Сортировка элементов по индексу сортировки значений типа список

Внутри любого компонента есть заранее заложенные поля для сортировки элементов. Можно сортировать элементы в разных напр...

Сгенерировать скидочные купоны, при заказе и отправить на почту

Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны для скидки (правила корзины) и ...

GIT-репозиторий на собственном сервере с веб-интерфейсом: Gitea - аналог GitHub

Задача: Развернуть git-репозиторий на собственном сервере с помощью Gitea — для ведения проектов, с веб-интерфейсом и по...

Почтовое событие на создание нового элемента инфоблока, через API

Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблока простыми пользователям.Будет...