Ajax / Javascript - обновлять только один раз - PullRequest
0 голосов
/ 27 декабря 2018

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

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

window.onload = timedRefresh(3000);

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

Ответы [ 4 ]

0 голосов
/ 27 декабря 2018

Проблема в том, что вы перезагружаете ту же самую страницу, поэтому без возможности сохранить тот факт, что вы уже запустили этот код, он просто запустит его снова.Старомодным способом сделать это было использование файлов 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.

0 голосов
/ 27 декабря 2018

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

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

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

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

0 голосов
/ 27 декабря 2018
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';

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

0 голосов
/ 27 декабря 2018

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

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

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

header("Refresh:0");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...