Я сохранил код меню своего веб-сайта в отдельном html-файле и включаю его на свои веб-страницы. которые требуют времени для рендеринга, потому что это вызов ajax. так что есть какой-либо способ сохранить html-страницу в сеансе или локальном хранилище. ? заранее спасибо

0
Asad 19 Фев 2016 в 14:00

2 ответа

Лучший ответ

Почему вы включаете файл с вызовом ajax вместо <?php include 'menu.php';?> или <?php require 'menu.php';?>? Это более надежно и быстро, к тому же, как упоминалось выше, в настоящее время и в настоящее время недостаточно хорошо поддерживаются как локальные, так и сеансовые хранилища.

0
knif3r 19 Фев 2016 в 12:14

Локальное хранилище - довольно новая идея в веб-разработке. Не все браузеры в настоящее время находятся на одной странице, поэтому вы в конечном итоге обнаружите, что иногда ваши методы будут идеально работать для кого-то, а не для кого-то вообще. Тем не менее вы можете использовать новую функцию HTML5 (localStorage и sessionStorage) для выполнения своей задачи.

Вы можете найти пример на http://www.w3schools.com/html/html5_webstorage.asp

Первый:

if(typeof(Storage) !== "undefined") {
    // Code for localStorage/sessionStorage.
} else {
    // Sorry! No Web Storage support..
}

Затем, если возможно хранение, вы можете реализовать свой код в приведенном выше случае:

// Store
localStorage.lastname = "Smith";
// Retrieve
document.getElementById("result").innerHTML = localStorage.lastname;

ИЛИ с sessionStorage:

if (sessionStorage.clickcount) {
    sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
} else {
    sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " + sessionStorage.clickcount + " time(s) in this session.";

По сути, на высоком уровне вам нужно сделать следующее:

  1. Вы захотите создать процедуру JavaScript, которая проверяет, поддерживает ли браузер пользователя localStorage, и если да, проверьте, не сохранили ли вы уже в нем боковые меню.
  2. Если вы сохранили сайдменю, просто загрузите его в этот элемент <div>. Если вы не сохранили боковое меню, установите вместо него атрибут «ng-include» (или выполните ручной вызов ajax).
  3. Если пользователь поддерживает localStorage, и вы выполнили вызов ajax, то все, что вам нужно, - это механизм для определения, когда загрузка sidemenu.html завершена, а затем выгрузить все содержимое этого div в localStorage.
0
CzechErface 19 Фев 2016 в 12:55