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




событие перезагрузка страницы jquery (18)

я нашел

window.location.href = "";

или же

window.location.href = null;

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

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

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


Вы можете использовать метод JavaScript location.reload() . Этот метод принимает логический параметр. 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>

Используйте location.reload() :

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

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


Он самый короткий в JavaScript.

location = '';

Вопрос должен быть,

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

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

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


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

window.location = window.location.pathname;

вместо

window.location.reload();

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


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

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

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

location.reload();

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

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

~ Wikipedia ~

Итак, вы поймете, что основа jquery или jquery основана на javascript . Поэтому переход с чистым javascript лучше, когда дело доходит до простых вещей.

Но если вам нужно решение jquery , вот что.

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

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

Простое решение для JavaScript :

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

location.reload();

То, что многие люди отсутствуют здесь, потому что они надеются получить некоторые «точки», состоит в том, что сама функция reload () предлагает логический параметр (параметр: location.reload() ).

Метод Location.reload () перезагружает ресурс из текущего URL-адреса. Его необязательный уникальный параметр - это логическое значение, которое, когда оно истинно, заставляет страницу всегда перезагружаться с сервера. Если он неверен или не указан, браузер может перезагрузить страницу из своего кеша.

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

Решение1: принудительно перезагрузить текущую страницу с сервера

location.reload(true);

Решение2: Перезагрузка с кеша или сервера (на основе браузера и вашей конфигурации)

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

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

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

Функция 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 получать кеш-память , даже если вы используете cache: true , поэтому мы используем parseHTML
  • parseHTML НЕ найдет тег body поэтому всему вашему телу нужно parseHTML дополнительный div, я надеюсь, что этот самородк знаний поможет вам однажды, вы можете догадаться, как мы выбрали id для этого div
  • Используйте http-equiv="refresh" всякий случай, если что-то пойдет не так, как с javascript / server hiccup, тогда страница будет STILL перезагружаться без вашего телефонного звонка
  • Этот подход, вероятно, как-то утешает память, исправление http-equiv исправляет, что

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

location.reload(forceGet)

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

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

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

Или просто

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>


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

window.location.reload();

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

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

window.location.reload(true);

Кроме того, если вы уже находитесь в области окна , вы можете избавиться от окна и сделать:

location.reload();

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

  • location.reload(true)

    В браузерах, которые реализуют параметр forcedReload location.reload() , перезагружается, выбирая новую копию страницы и все ее ресурсы (скрипты, таблицы стилей, изображения и т. Д.). Не будет обслуживать какие-либо ресурсы из кеша - получает свежие копии с сервера, не отправляя в запрос заголовки if-modified-since или if-none-match .

    Это эквивалентно тому, что пользователь делает «жесткую перезагрузку» в браузерах там, где это возможно.

    Обратите внимание, что передача true в location.reload() поддерживается в Firefox (см. location.reload() ) и Internet Explorer (см. MSDN ), но не поддерживается повсеместно и не является частью спецификации W3 HTML 5 , ни W3 draft HTML 5.1 spec , ни WHATWG HTML Living Standard .

    В неподдерживаемых браузерах, таких как Google Chrome, location.reload(true) ведет себя так же, как location.reload() .

  • location.reload() или location.reload(false)

    Перезагружает страницу, извлекает свежую, не кэшированную копию самого HTML-страницы страницы и выполняет запросы повторной проверки RFC 7234 для любых ресурсов (например, скриптов), которые кешировало браузер, даже если они fresh , RFC 7234 позволяет браузеру обслуживать их без повторной аттестации.

    Точно как браузер должен использовать свой кеш при выполнении вызова location.reload() как я могу сказать, не указан или не документирован; Я определил поведение выше, экспериментируя.

    Это эквивалентно тому, что пользователь просто нажимает кнопку «Обновить» в своем браузере.

  • location = location (или бесконечно много других возможных методов, которые связаны с назначением location или его свойствам)

    Работает только в том случае, если URL страницы не содержит хэширования / hashbang!

    Перезагружает страницу без повторной установки или повторной проверки fresh ресурсов из кеша. Если сам HTML страницы свежий, это приведет к перезагрузке страницы без каких-либо HTTP-запросов.

    Это эквивалентно (с точки зрения кэширования) пользователю, открывающему страницу на новой вкладке.

    Однако, если URL страницы содержит хеш, это не будет иметь никакого эффекта.

    Опять же, поведение кэширования здесь не определено, насколько я знаю; Я определил это путем тестирования.

Итак, в общем, вы хотите использовать:

  • location = location для максимального использования кеша, пока страница не имеет хеша в своем URL-адресе, и в этом случае это не будет работать
  • location.reload(true) для извлечения новых копий всех ресурсов без повторной проверки (хотя она не поддерживается повсеместно и не будет отличаться от location.reload() в некоторых браузерах, таких как Chrome)
  • location.reload() чтобы точно воспроизвести эффект нажатия пользователем кнопки «Обновить».

Вот несколько строк кода, которые вы можете использовать для перезагрузки страницы с помощью 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>

Простое решение для Javascript:

 location = location; 

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





reload