Как обновить только часть страницы при нажатии кнопки F5 или refresh

Я разрабатываю веб-приложение, которое имеет общее меню для всех страниц. Из-за этого я решил загрузить содержимое, связанное кнопками МЕНЮ внутри div, используя jquery.

Итак, у меня есть это:

     $("#AddNewProductBtn").click(function() {
       $("#content").load("addproduct.html");
   });

Я хочу отслеживать страницу, отображаемую внутри div "#content". Если пользователи обновляют страницу, Я хочу загрузить ту же страницу в "#content". Есть ли способ сделать это, или есть ли обходной путь?

Я видел некоторые сайты, которые используют iframe для загрузки страниц, но когда пользователь нажимает кнопку в меню, url-адрес также изменяется. Я не нашел никакой информации о том, как это сделать.

спасибо

3 ответов


вы должны добавить параметр к хэш-части url (после #), например domain.com/index.php#addproduct

затем на документ.ready проверьте значение после # и загрузите соответствующее содержимое.

некоторые плагины, такие как история jQuery использовать эту технику.

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


вот решение для F5 и CTRL+R

$(document).keydown(function(e) {
    if (e.which == 116 || e.keyCode == 82 && e.ctrlKey) { //116 = F5
        $("#content").load("addproduct.html");
        return false;
    }
}); 

кроме того, вместо использования хэша вы можете использовать API истории HTML5 (pushState, replaceState и popstate). В принципе, это хэш с некоторыми улучшениями (например, индексируемый поисковыми системами).

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
http://www.w3.org/TR/html5/history.html