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


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

21 2107

21 ответ:

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

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

The 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. Я проверил его на хром 13. Затем я помещаю код в обработчик, который вызовет перезагрузку. Элемент URL и "", что означает на этой странице.

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

можно использовать JavaScriptlocation.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);

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

location.reload();

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

Я хочу, чтобы скрыть элемент iframe со страницы при нажатии ой элемент 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 feeling на ваш код и вы не заботитесь о скорость/производительность кодекса.

просто выберите от 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. Так что идем с чистым javascript лучше, когда дело доходит до простых вещей.

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

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