Как я могу обновить эту страницу один раз, только не повторяя
function timedRefresh(timeoutPeriod) {
setTimeout("location.reload(false);",timeoutPeriod);
}
window.onload = timedRefresh(3000);
document.getElementById('myModal').style.display='block';
Приведенный выше код записан на page1.php?
@JackBashford нет, это currentpage.php
@ onkar.v нет, я не это имел в виду, пожалуйста, прочтите мою проблему выше еще раз, сэр, я хочу обновить определенные страницы, а не ту же страницу
window.location.href = "page1.php";вы не можете перезагрузить другую страницу с помощью javascript. вы можете только перенаправить или перезагрузить текущую страницу
@Zeljka хорошо, спасибо за это, сэр, я изменил свой вопрос, пожалуйста, посмотрите, мой вопрос в том, как я могу обновить страницу только один раз и НЕ повторять?
я отправлю полный ответ



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вы можете обновить страницу с помощью PHP
header('Refresh: 0; url=page1.php');
Чтобы обновить текущую страницу, вы можете использовать -
header("Refresh:0");
вы не можете использовать заголовок в javascript, его функция php
Хотя связанный ответ 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 секунды? можем ли мы просто удалить это обновление, потому что оно обновляется каждый раз, когда мой компьютер тормозит :(
Я имею в виду, давайте просто скроем это обновление, но даже если оно скрыто, страница все равно будет обновляться
Страница должна обновиться один раз через 3 секунды, а затем больше не обновляться. Это не работает?
вы можете использовать location.reload (); чтобы обновить страницу об успехе Ajax.