Как обновить страницу с помощью jQuery?

Как обновить страницу с помощью jQuery?

21 ответов


использовать location.reload():

$('#something').click(function() {
    location.reload();
});

на reload() функция принимает необязательный параметр, который может быть установлен на true чтобы принудительно перезагрузить сервер, а не кэш. Параметр по умолчанию:false, поэтому по умолчанию страница может перезагружаться из кэша браузера.


Это должно работать во всех браузерах даже без jQuery:

location.reload();

здесь несколько неограниченные способы обновления страницы с помощью JavaScript:

  1. location.reload()
  2. history.go(0)
  3. location.href = location.href
  4. location.href = location.pathname
  5. location.replace(location.pathname)
  6. location.reload(false)

    если нам нужно было вытащить документ из веб-сервер снова (например, где содержимое документа изменить динамически) мы бы передали аргумент как true.

вы можете продолжить список творчески:

var methods = [
  "location.reload()",
  "history.go(0)",
  "location.href = location.href",
  "location.href = location.pathname",
  "location.replace(location.pathname)",
  "location.reload(false)"
];

var $body = $("body");
for (var i = 0; i < methods.length; ++i) {
  (function(cMethod) {
    $body.append($("<button>", {
      text: cMethod
    }).on("click", function() {
      eval(cMethod); // don't blame me for using eval
    }));
  })(methods[i]);
}
button {
  background: #2ecc71;
  border: 0;
  color: white;
  font-weight: bold;
  font-family: "Monaco", monospace;
  padding: 10px;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.5s ease;
  margin: 2px;
}
button:hover {
  background: #27ae60;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

много способов будет работать, я полагаю:

  • window.location.reload();
  • history.go(0);
  • window.location.href=window.location.href;

перезагрузить страницу с помощью jQuery, сделать:

$.ajax({
    url: "",
    context: document.body,
    success: function(s,x){
        $(this).html(s);
    }
});

подход здесь, который я использовал, был Ajax jQuery. Я протестировал его на Chrome 13. Затем я помещаю код в обработчик, который запустит перезагрузку. The URL-адресом is "", что означает на этой странице.


если текущая страница была загружена запросом POST, вы можете использовать

window.location = window.location.pathname;

вместо

window.location.reload();

, потому что window.location.reload() запросит подтверждение при вызове страницы, загруженной запросом POST.


вопрос должен быть:

Как обновить страницу с помощью JavaScript

window.location.href = window.location.href; //This is a possibility
window.location.reload(); //Another possiblity
history.go(0); //And another

ты избалован выбором.


вы можете использовать

location.reload(forceGet)

forceGet является логическим и необязательным.

значение по умолчанию-false, которое перезагружает страницу из кэша.

установите этот параметр в true, если вы хотите заставить браузер получить страницу с сервера, чтобы избавиться от кэша.

или просто

location.reload()

Если вы хотите быстро и легко с кэшированием.


три подхода с различным поведением, связанным с кэшем:

  • location.reload(true)

    в браузерах, которые реализуют


window.location.reload() перезагрузится с сервера и загрузит все ваши данные, скрипты, изображения и т. д. снова.

поэтому, если вы просто хотите обновить HTML,window.location = document.URL вернется гораздо быстрее и с меньшим трафиком. Но он не будет перезагружать страницу, если в URL-адресе есть хэш ( # ).


в jQuery Load функция также может выполнять обновление страницы:

$('body').load('views/file.html', function () {
    $(this).fadeIn(5000);
});

вот решение, которое асинхронно перезагружает страницу с помощью jQuery. Это позволяет избежать мерцания, вызванного window.location = window.location. В этом примере показана страница, которая постоянно перезагружается, как в панели мониторинга. Он испытан в бою и работает на информационном дисплее телевизора на Таймс-Сквер.

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
    <meta http-equiv="refresh" content="300">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
    <script>
    function refresh() {
      $.ajax({
        url: "",
        dataType: "text",
        success: function(html) {
          $('#fu').replaceWith($.parseHTML(html));
          setTimeout(refresh,2000);
        }
      });
    }
    refresh();
    </script>
  </head>
  <body>
    <div id="fu">
      ...
    </div>
  </body>
</html>

Примечания:

  • используя $.ajax как $.get('',function(data){$(document.body).html(data)}) вызывает css / js файлы, чтобы получить кэш-busted, даже если вы используете cache: true, вот почему мы используем parseHTML
  • parseHTML не нашел body tag таким образом, все ваше тело должно пойти в дополнительный div, я надеюсь, что этот самородок знаний поможет вам однажды, вы можете догадаться, как мы выбрали id для этого div
  • использовать http-equiv="refresh" на всякий случай, если что-то пойдет не так с javascript/server икота, то страница все равно перезагрузится без получения телефонного звонка
  • этот подход, вероятно, утечка памяти как-то,http-equiv обновление исправляет это

поскольку вопрос является общим, давайте попробуем суммировать возможные решения для ответа:

простое простое решение JavaScript:

самый простой способ-это однострочное решение, размещенное соответствующим образом:

location.reload();

чего здесь не хватает многим людям, потому что они надеются получить некоторые "очки" , так это то, что сама функция reload() предлагает логическое значение в качестве параметра (подробности: https://developer.mozilla.org/en-US/docs/Web/API/Location/reload).

Расположение.метод reload () перезагружает ресурс из текущего URL-АДРЕС. Его необязательным уникальным параметром является логическое значение, которое true, заставляет страницу всегда перезагружаться с сервера. Если это false или не указано, браузер может перезагрузить страницу из кэш.

Это означает, что есть два пути:

Решение 1:силу перезагрузка текущей страницы с сервера

location.reload(true);

Solution2: перезагрузка из кэша или сервера (на основе браузера и вашей конфигурации)

location.reload(false);
location.reload();

и если вы хотите объединить его с jQuery прослушиванием события,я бы рекомендовал использовать".on () " метод вместо ".нажмите " или другие обертки событий, например, более правильным решением будет:

$('#reloadIt').on('eventXyZ', function() {
    location.reload(true);
});

нашел

window.location.href = "";

или

window.location.href = null;

также обновите страницу.

Это упрощает перезагрузку страницы, удаляя любой хэш. Это очень приятно, когда я использую AngularJS в симуляторе iOS, так что мне не нужно перезапускать приложение.


можно использовать JavaScript location.reload() метод. Этот метод принимает параметр типа boolean. true или false. Если параметр true; страница всегда перезагружается с сервера. Если это false; который является значением по умолчанию или с пустым параметром браузера перезагрузите страницу из кэша.

С true параметр

<button type="button" onclick="location.reload(true);">Reload page</button>

С default/ false параметр

 <button type="button" onclick="location.reload();">Reload page</button>

использование jquery

<button id="Reloadpage">Reload page</button>
<script type="text/javascript">
    $('#Reloadpage').click(function() {
        location.reload();
    }); 
</script>

вы не нужно что-нибудь в jQuery, чтобы перезагрузить страницу с помощью чистый JavaScript, просто используйте функцию перезагрузки на свойстве местоположения, как это:

window.location.reload();

по умолчанию это перезагрузит страницу с помощью кэша браузера (если он существует)...

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

window.location.reload(true);

также, если вы уже в объем окна, вы можно избавиться от window и сделать:

location.reload();

если вы используете jQuery и хотите обновить, попробуйте добавить jQuery в функцию javascript:

Я хотел скрыть iframe со страницы при нажатии oh an h3, для меня это сработало, но я не смог щелкнуть элемент, который позволил мне просмотреть iframe для начала, пока я не обновил браузер вручную...не идеальный.

я попробовал следующий:

var hide = () => {
    $("#frame").hide();//jQuery
    location.reload(true);//javascript
};

смешивание простого Jane javascript с вашим jQuery должно работать.

// code where hide (where location.reload was used)function was integrated, below    
    iFrameInsert = () => {
        var file = `Fe1FVoW0Nt4`;
        $("#frame").html(`<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/${file}\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen></iframe><h3>Close Player</h3>`);
        $("h3").enter code hereclick(hide);
}

// View Player 
$("#id-to-be-clicked").click(iFrameInsert);

использовать onclick="return location.reload();" внутри тега кнопки.

<button id="refersh-page" name="refersh-page" type="button" onclick="return location.reload();">Refesh Page</button>

Простое Решение Javascript:

 location = location; 

<button onClick="location = location;">Reload</button>

вот несколько строк кода, которые можно использовать для перезагрузки страницы использование jQuery.

он использует оболочку jQuery и извлекает собственный элемент dom.

использовать это, если вы просто хотите jQuery и чувство на вашем коде, и вам все равно скорость/производительность кодекса.

просто выберите от 1 до 10, который соответствует вашим потребностям или добавить еще несколько на основе шаблона и ответов перед этим.

<script>
  $(location)[0].reload(); //1
  $(location).get(0).reload(); //2
  $(window)[0].location.reload(); //3
  $(window).get(0).location.reload(); //4
  $(window)[0].$(location)[0].reload(); //5
  $(window).get(0).$(location)[0].reload(); //6
  $(window)[0].$(location).get(0).reload(); //7
  $(window).get(0).$(location).get(0).reload(); //8
  $(location)[0].href = ''; //9
  $(location).get(0).href = ''; //10
  //... and many other more just follow the pattern.
</script>

все ответы здесь хорошие. Поскольку вопрос указывает на перезагрузку страницы с в jQuery, Я просто подумал добавить что-то еще для будущих читателей.

jQuery-это кросс-платформенное библиотека JavaScript предназначен для упрощения клиентских сценариев HTML.

~ Википедия ~

Так что вы поймете, что основание в jQuery или в jQuery на основе javascript. Так что с pure javascript лучше, когда дело доходит до простых вещей.

но если вам нужен в jQuery решение, вот одна.

$(location).attr('href', '');