是否可以将 html 网页保存在客户端的会话或本地存储中?

Is it possible to save html web page on client side in session or local storage?

我已将网站的菜单代码保存在单独的 html 文件中,并包含在我的网页中。 这需要时间来呈现,因为它是 ajax 调用。 所以有任何方法可以在会话或本地存储中保存 html 页面。 ? 提前致谢

本地存储在网络开发中是一个相当新的概念。目前并非所有浏览器都在同一页面上,因此您最终会发现有时您的方法对某些人来说可以完美工作,而对其他人则根本行不通。 None-您可以使用 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..
}

然后,如果存储是可能的,你可以在上面的 if-case 中实现你的代码:

// 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。

为什么要包含带有 ajax 调用而不是 <?php include 'menu.php';?><?php require 'menu.php';?> 的文件?它更可靠、更快速,同样如上所述,目前本地和会话存储都没有得到很好的支持。