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

时间:2016-02-19 11:00:18

标签: html5 web local-storage httpclient session-storage

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

2 个答案:

答案 0 :(得分:0)

本地存储在Web开发中是一个相当新的想法。并非所有浏览器目前都位于同一页面上,因此您最终会发现有时您的方法可以完美地用于某人而不是其他人。尽管如此,您可以使用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;

OR与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,如果是,请检查您是否已将sidemenu存储在其中。
  2. 如果你确实存储了sidemenu,那么只需将其加载到<div>元素中即可。如果你没有存储侧面菜单,那么设置&#34; ng-include&#34;相反,属性(或手动ajax调用)。
  3. 如果用户确实支持localStorage并且您最终进行了ajax调用,那么您需要的是一种机制来检测sidemenu.html何时完成加载,然后将该div的所有内容转储到localStorage。

答案 1 :(得分:0)

为什么要将文件包含ajax来代替<?php include 'menu.php';?><?php require 'menu.php';?>?它更可靠,更快速,同样如上所述,本地和会议存储在此时间和日期都不受支持。