• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    利用Node实现HTML5离线存储的方法

    发布者: 网神之王 | 发布时间: 2025-6-16 12:29| 查看数: 96| 评论数: 0|帖子模式

    前言
    支持离线Web应用开发是HTML5的一个重点。离线Web应用就是在设备不能上网的时候仍然可以运行的应用。开发离线Web应用需要几个步骤,其中一个就是离线下必须能访问一定的资源(图像 JS css等)
    HTML5引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在离线时进行访问。
    :pushpin:应用程序缓存为应用带来三个优势:
         
    • 离线浏览 – 用户可在应用离线时使用它们   
    • 速度 – 已缓存资源加载得更快   
    • 减少服务器负载 – 浏览器将只从服务器下载更新过或更改过的资源。
    原理和环境
         
    • 在线的情况下, 当浏览器渲染到
      1. <html manifest="test.manifest">
      复制代码
      时,会发出一个请求,请求获取
      1. test.manifest
      复制代码
      文件 ,如果是第一次访问,那么浏览器就会根据 描述文件(manifest 文件)中(CACHE MANIFEST)的内容下载相应的资源并且进行离线存储。如果已经访问过并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的
      1. manifest
      复制代码
      文件与旧的
      1. manifest
      复制代码
      文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。   
    • :triangular_flag_on_post: 【注】 这个demo演示是为了更深的了解这个原理   
    • 离线的情况下,浏览器就直接使用离线存储的资源   
    • 就像cookie一样,HTML5的离线存储也需要服务器环境,这个demo中服务端基于Node.js、Express框架和art-tmplate开发
    描述文件
    要想在缓存中保存数据,需要使用描述文件manifest 文件,列出要下载和缓存的资源
    manifest 文件可分为三个部分:
         
    • CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存   
    • NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存   
    • FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)   
    • 在线的情况下,用户代理每次访问页面,都会去读一次manifest.如果发现其改变, 则重新加载全部清单中的资源
    结构


    :triangular_flag_on_post: 【注意】 所有的你想让浏览器缓存的资源放在public静态资源文件夹中
    服务端环境的搭建
    1. npm init //生成package.json说明书文件
    2. npm i express //安装express包
    3. npm i --save art-template express-art-template //使用art-tmplate
    4. // 入口文件app.js
    5. var express = require("express");
    6. var app = express();
    7. app.use('/public/', express.static('./public/'))
    8. app.engine('html', require('express-art-template'));
    9. app.get('/', function (req, res) {
    10.   res.render('index.html');
    11. });
    12. app.listen(3000, function () {
    13.   console.log("app is running at port 3000.");
    14. });
    复制代码
    其它
    offline.appcache描述文件
    1. CACHE MANIFEST
    2. #v01
    3. /public/image/01.jpg //缓存第一张图片

    4. NETWORK:
    5. *

    6. FALLBACK:
    7. /
    复制代码
    index.html
    1. <!DOCTYPE html>
    2. <html lang="en" manifest="../public/offline.appcache">

    3. <head>
    4.   <meta charset="UTF-8">
    5.   <title>HTML5离线存储</title>
    6.   <link rel="stylesheet" href="../public/index.css">
    7. </head>

    8. <body>
    9.   <img src="../public/image/01.jpg" alt="">
    10.   <img src="../public/image/02.jpg" alt="">
    11. </body>

    12. </html>
    复制代码
    结果
    开启服务端后:

    关闭服务端后:

    改变
    1. manifest
    复制代码
    后 再次连接服务器
    1. CACHE MANIFEST
    2. #v01
    3. /public/image/01.jpg
    4. /public/index.css

    5. NETWORK:
    6. *

    7. FALLBACK:
    8. /
    复制代码

    :triangular_flag_on_post: 【注】 看图右边控制端的输出,因为改变了manifest文件,浏览器会对比新的 manifest 文件与旧的 manifest 文件,发现文件改变了,那么就会重新下载文件中的资源并进行离线存储
    再次关闭服务端后:

    到此这篇关于利用Node实现HTML5离线存储的文章就介绍到这了,更多相关HTML5离线存储内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/html5/748571.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表