Меню

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

RSS
Обновить страницу один раз, сразу после ее загрузки на JS и PHP, Единоразовое обновление страницы после ее загрузки на 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 будет уже установлена, и обновление страницы больше не произойдет.
Изменено: Михаил Базаров - 24.09.2024 09:35:32
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

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

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

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

Показать пользователю накопительную скидку за все сделанные заказы, из модуля маркетинга

Задача: показать, текущему авторизованному, пользователю сумму всех выполненных заказов и процент накопительной скидки- ...

Основные функции вывода в шаблонах Битрикс

Знаю, что все их знают. Но иногда не бывает лишним собрать все самое используемое в одну кучку. Ведь у каждого бывают мо...

Создание агента в 1С-Битрикс, на реальном примере

Задача: Каждый час нужно обновлять свойство элементов/товаров с типом строка "В наличии", вписывать в него либ...

Заполнить свойство заказа выбранным пунктом самовывоза и передать в 1С

Задача: При оформлении заказа пользователь может выбрать пункт самовывоза (склады магазина). Нужно заполнить сво...

Прямое открытие мессенджеров по ссылке из приложения Apache Cordova

Задача: При клике по ссылкам на Telegram и WhatsApp в мобильном приложении необходимо сразу открывать мессенджеры без пр...

Работа с HTTP-запросами в Bitrix: Обзор возможностей класса \Bitrix\Main\HttpRequest

Класс \Bitrix\Main\HttpRequest, является наследником класса Request, представляет собой мощный инструмент для работы с д...

Добавление не существующего товара в корзину и заказ, 1С-Битрикс

Задача: нужно добавить в корзину товар, которого не существует в каталоге, с возможностью задать ему произвольные назван...

Помечаем новинки лейблом в каталоге битрикс

Достаточно часто, при разработке каталога товаров или интернет магазина на системе управления Битрикс, встает задача как...