2014-12-08 4 views
0

Я хочу перезагрузить страницу только 1 раз, когда пользователь переходит на эту страницу.Перезагрузка страницы через jQuery

Я использую следующий скрипт:

$(document).ready(function() { 
    for (i = 1 ; i <= 1 ; i++) { 
    location.reload(); 
    } 
}); 

Но он продолжает перезагрузки страницы. Любая ошибка с циклом for?

+0

да - ошибка в том, что если вы перезарядить себя, сценарий также перезагружается и, следовательно, перезапускается! вы должны обернуть что-то вокруг своей страницы, которая загружает контент. – errand

+1

Проверьте, нет ли постоянной клиентской стороны данных в качестве файла cookie или локального/сеансового хранилища. Говорят, звучит очень похоже на проблему xy. Зачем вам нужно перезагружать страницу и особенно в цикле 'for' ??? Не имеет смысла –

+0

Если вы перезагрузите страницу, снова загрузится '$ (document) .ready'. –

ответ

3

Сброс JavaScript каждые время загрузки страницы. После перезагрузки страницы ваш цикл for - это история. Вот альтернатива использования HTML5 Local Storage:

$(document).ready(function() { 
    if(localStorage.getItem('reload') != false) 
     localStorage.setItem('reload', false); 
     location.reload(); 
    } 
}); 
+0

Большое спасибо :-) – Paramasivan

+0

Это будет работать только при первом посещении страницы. Если вы вернетесь на сайт позже, он не перезагрузит страницу. – Archer

+0

@Archer OP не объяснил это очень хорошо, но я думаю, что это требование – CodingIntrigue

2

Вам нужно каким-то образом сделать страницу помните, что это уже была загружена раньше. Я хотел бы использовать LocalStorage/sessionStorage:

$(document).ready(function() { 
    if (!localStorage.reloaded) { 
     location.reload(); 
     localStorage.reloaded = true; 
    } 
}); 
+0

Я думаю, что это работает! – Paramasivan

+1

Кто-то очень суров с их downvotes сегодня. Кстати, я не понимал, что мы можем использовать нотацию точки/скобки с помощью 'localStorage'.Я буду считать, что что-то новое на сегодня, спасибо! – CodingIntrigue

+0

@RGraham Да, это немного более лаконично, чем 'getItem'. Вы также можете использовать обозначения в виде скобок, например, с обычным объектом. – dfsq

-1

Вы можете установить куки, чтобы быть установлен с помощью JQuery при первой загрузке страницы, а затем, если оператор использовать для запуска перезагрузки, если страница не была перезагружена (который будет определен в файле cookie) и после удаления файла cookie.

1

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

Общими решениями для этого являются файлы cookie, фрагменты URL-адресов, местное хранилище.

Cookie

if(!(/\breloaded=1/.test(document.cookie))){ 
    document.cookie = 'reloaded=1'; 
    location.reload(); 
} 

URL фрагмент

if(location.hash != '#reloaded'){ 
    location.hash = '#reloaded'; 
    location.reload(); 
} 

Local Storage

if (localStorage.getItem('reloaded') != false) { 
    localStorage.setItem('reloaded', false); 
    location.reload(); 
} 
Смежные вопросы