Ajax / Javascript - обновить только один раз

Как я могу обновить эту страницу один раз, только не повторяя

    function timedRefresh(timeoutPeriod) {
  setTimeout("location.reload(false);",timeoutPeriod);
}

window.onload = timedRefresh(3000);

document.getElementById('myModal').style.display='block';

вы можете использовать location.reload (); чтобы обновить страницу об успехе Ajax.

onkar.v 27.12.2018 08:27

Приведенный выше код записан на page1.php?

Jack Bashford 27.12.2018 08:27

@JackBashford нет, это currentpage.php

user10701881 27.12.2018 08:29

@ onkar.v нет, я не это имел в виду, пожалуйста, прочтите мою проблему выше еще раз, сэр, я хочу обновить определенные страницы, а не ту же страницу

user10701881 27.12.2018 08:30
window.location.href = "page1.php";
H45H 27.12.2018 08:35

вы не можете перезагрузить другую страницу с помощью javascript. вы можете только перенаправить или перезагрузить текущую страницу

Zeljka 27.12.2018 08:45

@Zeljka хорошо, спасибо за это, сэр, я изменил свой вопрос, пожалуйста, посмотрите, мой вопрос в том, как я могу обновить страницу только один раз и НЕ повторять?

user10701881 27.12.2018 08:46

я отправлю полный ответ

Zeljka 27.12.2018 08:49
stackoverflow.com/questions/6985507/…
Zeljka 27.12.2018 09:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
9
135
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

вы можете обновить страницу с помощью PHP

header('Refresh: 0; url=page1.php');

Чтобы обновить текущую страницу, вы можете использовать -

header("Refresh:0");

вы не можете использовать заголовок в javascript, его функция php

Zeljka 27.12.2018 08:43

Хотя связанный ответ Zeljka - это будущее, если вы уже используете хеши для навигации, возможно, лучше использовать performance.navigation.type.

window.onload = function() {
    if (performance.navigation.type != 1) {
       timedRefresh(3000);
    }
}

function timedRefresh(time) {
    setTimeout(function() {
        location.reload()
    }, time);
}

Обратите внимание, что NavigationType обесценивается, но похоже, что новая спецификация будет иметь эквивалент, когда она появится.

int refresh=0;  

function timedRefresh(timeoutPeriod) {
  setTimeout("location.reload(false);",timeoutPeriod);
  refresh=1;
}

if (refresh==0){
window.onload = timedRefresh(3000);
}


document.getElementById('myModal').style.display='block';

вы можете добавить флаг логическое или целое число, чтобы проверить, загружена ли страница или нет

Ответ принят как подходящий

Проблема в том, что вы перезагружаете ту же самую страницу, поэтому без возможности сохранить тот факт, что вы уже запускали этот код, он просто запустит его снова. Старомодным способом этого было использование файлов cookie:

function timedRefreshIfNoCookie(timeoutPeriod, cookieName) {
    var cookies = document.cookie;
    if (cookies.indexOf(' '+cookieName+'=1;') < 0) {
        document.cookie = cookieName+'=1';
        setTimeout(function () {
            location.reload();
        }, timeoutPeriod);
    }
}
window.onload = function() {
    timedRefreshIfNoCookie(3000, 'refreshed');
}    
document.getElementById('myModal').style.display='block';

Вы, вероятно, можете использовать что-нибудь получше, например локальное хранилище или библиотеку файлов cookie, чтобы упростить работу с файлами cookie.

привет, сэр, спасибо, это сработало! но последняя проблема: почему страница обновляется каждые 3 секунды? можем ли мы просто удалить это обновление, потому что оно обновляется каждый раз, когда мой компьютер тормозит :(

user10701881 28.12.2018 05:54

Я имею в виду, давайте просто скроем это обновление, но даже если оно скрыто, страница все равно будет обновляться

user10701881 28.12.2018 05:55

Страница должна обновиться один раз через 3 секунды, а затем больше не обновляться. Это не работает?

apokryfos 28.12.2018 10:16

Другие вопросы по теме