• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 离线应用的一种设计方案

离线应用的一种设计方案

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了离线,用的,一种,设计,方案等相关知识,希望本文的分享对您有所帮助

所谓离线应用,就是在离线时能够把数据存储到本地,在线时同步到服务器上。HTML5提供了程序缓存和本地存储两种机制来实现, 可以用cache manifest和indexedDB来搜索相关内容。各个浏览器对此支持都不太一样,本文尝试出一种可行的方案。 程序缓存 程序缓存比

所谓离线应用,就是在离线时能够把数据存储到本地,在线时同步到服务器上。HTML5提供了程序缓存和本地存储两种机制来实现, 可以用cache manifest和indexedDB来搜索相关内容。各个浏览器对此支持都不太一样,本文尝试出一种可行的方案。

程序缓存

程序缓存比较容易设置,只要写一个.manifest文件,服务器空间,再把它写到html元素的属性就可以了。我遇到的一些问题:

因此对离线应用而言,我认为程序缓存的作用就是保存静态文件。

本地存储与数据库

据说浏览器限制本地存储为5M,所以就不考虑了。主要是利用浏览器支持的indexedDB来完成数据操作。

数据流/对象交互设计

浏览器中的视图view一般直接从服务器中存取数据。考虑了离线应用之后,需要加入一个中介mediator,如上图所示,为视图屏蔽掉在线与离线的区别,简化视图设计。在此有两者实现方式:

1. 以原有的在线方式为主,在原有的数据流上开分路。好处是不改变原有的数据格式,服务器空间,不中断原来网站的运行。

2. 以离线方式为主,无论在线与否,视图都只对indexedDB进行数据存取,在后台进行indexedDB与服务器的数据复制replication。

方式1的测试成本要比方式2高一些。方式1要测试视图到服务器,视图到indexedDB和indexedDB到服务器三条路径。方式2只要测试视图到indexedDB和indexedDB到服务器两条路径。因此我选择了方式2。

数据复制replication

视图到indexedDB的数据存取理论上是比较容易的,实际上有很多莫名其妙的地方。这里只讨论数据复制。需要考虑的是数据的版本控制。

  • 复制前没人改过数据,本地数据版本与服务器版本一致,开启数据复制过程。
  • 复制前有人已经改过数据了,本地数据版本比服务器版本低。此时可提示用户选择如何进行数据操作。这种情况我没有测试。
  • 复制过程需要考虑数据表中每一条数据的状态,其转换图如下:

    总结

    从本文的方案可以看出,离线应用的难题在于本地数据与服务区数据的同步,网站空间,最好能得到浏览器的支持。

    分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

    您可能想查找下面的文章:

    • 离线应用的一种设计方案

    相关文章

    • 2017-05-11几种MySQL中的联接查询操作方法总结
    • 2017-05-11mysql常见的错误提示问题处理小结
    • 2017-05-11MySQL触发器使用详解
    • 2018-12-05MySQL 服务器参数说明及查看 设置方法
    • 2017-05-11mysql筛选GROUP BY多个字段组合时的用法分享
    • 2018-12-05win2008 R2 WEB环境配置之MYSQL 5.6.22安装版安装配置方法_MySQL
    • 2017-05-11MySQL 数据库的临时文件究竟储存在哪里
    • 2017-05-11深入理解mysql之left join 使用详解
    • 2018-12-05Mysql学习笔记(三)对表数据的增删改查。
    • 2018-12-05mysql 队列 实现并发读

    文章分类

    • MsSql
    • Mysql
    • oracle
    • MariaDB
    • DB2
    • SQLite
    • PostgreSQL
    • MongoDB
    • Redis
    • Access
    • 数据库其它
    • sybase
    • HBase

    最近更新的内容

      • 如何利用MySQL数据库在插入数据后触发触发器
      • Mysql数据控制语言
      • 关于启动面的详细介绍
      • mysql的数据类型有哪些?mysql数据类型详解
      • 解决MySQL无法远程连接的方法
      • sqlserver中在指定数据库的所有表的所有列中搜索给定的值
      • 数据库复制性能测试 推送模式性能测试
      • oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼
      • GTID复制和问题处理
      • 【MySQL 06】事务处理

    关于我们 - 联系我们 - 免责声明 - 网站地图

    ©2020-2025 All Rights Reserved. linkedu.com 版权所有