Определить загрузку первой страницы с помощью jQuery?
Мне нужно обнаружить первый раз, когда страница загружается в jQuery, чтобы я мог выполнять некоторые действия только тогда, когда страница загружается при первом переходе пользователя на эту страницу. Подобно серверному коду page.ispostbasck. Я тестировал $(document).ready, и он срабатывает каждый раз, когда загружается страница, поэтому это не даст мне то, что мне нужно. Я также попробовал функцию jQuery Load - он также запускает загрузку каждой страницы. Таким образом, при загрузке страницы пример состоит в том, что у меня есть тег ввода HTML на странице кнопки типа и он не запускает обратную передачу (например, кнопку asp.net), но он перезагружает страницу и запускает $(document).ready
Спасибо
Ответы
Ответ 1
Вам нужно будет использовать файл cookie для хранения первой информации о загрузке:
if (! $.cookie("cookieName")){
// do your stuff
// set cookie now
$.cookie("cookieName", "firstSet", {"expires" : 7})
}
Примечание. В приведенном выше примере используется плагин jQuery cookie.
Ответ 2
Я просто столкнулся с этой проблемой, и именно так я ее обработал. Следите за тем, как загружается страница с помощью переменной initialLoad
:
var initialLoad = true;
$(document).ready(function() {
...
...
...
initialLoad = false;
});
Затем в других функциях вы можете сделать это:
if (initialLoad) {
//Do work that is done when the page was first refreshed/loaded.
} else {
//Do work when it not the initial load.
}
Это хорошо работает для меня. Если пользователь уже находится на странице и запускаются некоторые функции jQuery, теперь я знаю, только что этот пользователь просто загрузил страницу или они уже были на странице.
Ответ 3
Событие не существует, которое срабатывает только при первой загрузке страницы.
Вы должны использовать jQuery .ready()
событие, а затем упорствовать в том, что вы обработали загрузку первой страницы, используя свой метод (т.е. cookie, переменная сеанса, локальное хранилище и т.д.).
Примечание. Этот метод никогда не будет доказательством дурака, если вы не сможете сохранить эту информацию на уровне пользователя в БД. В противном случае, как только пользователь очистит свои файлы cookie или любой другой метод, код "первый раз загрузится" снова запустится.
Ответ 4
Простым решением является использование jQuery 'Once plugin
$(element).once('class-name', function() {
// your javascript code
});