# 离线应用及用户端本地数据库 ## 无代码开发客户端应用的几个种模式: * **客户端-服务器端**:这是网络服务产品的标准架构,这类架构的前提是服务器端是一直可连接,服务器端一直运行的,否则客户端用户没法正常使用,通常所说的C/S、B/S架构的服务都是这一类型,TERSUS可开发B/S架构产品 * **离线应用**:离线应用在服务器端停止运行或不能联接服务器状态下,用户端仍可以使用功能,只是用户数据不能实时保存到服务器,而是存至用户端本地,当网络连接正常或是服务器开始运行时,可以进行数据的同步处理,TERSUS也可以开发此类应用 * **独立应用程序**:这是最简单的一种架构,应用不与服务器端有任何联系,但是可以在本地进行数据查询保存处理,TERSUS导出的原生应用就可以是这一类架构产品 ## 网页数据存储和客户端数据库 * 在“客户端-服务器端”架构中,数据是存储在服务器端的数据库中的(或一般而言,是存在由服务器端统一管理的数据存储系统中的---如由服务器配置文件管理,存在联网的另一个数据库文件所在的设备中,也就是应用服务器和数据服务器是分离的) * “离线应用”和“独立应用程序”需要在客户端设备中存储数据---“离线应用”在客户端和服务器端联网正常时,本地存储数据与服务器端数据进行同步上传保存处理;而“独立应用程序”一直用本地存储数据进行数据查存删改处理 * 最基本的本地存储机制就是用**网页数据存储**---可以将数据以键值对信息存放在客户端网页内存中,官方“客户信息本应用”案例项目用的就是这个方式 * **客户端数据库**是一个本地存储系统,当前使用Webkit引擎的各主流浏览器都支持本地存储,比如各类手机、还有电脑上使用的苹果的Safari和谷歌的Chrome浏览器都支持此类数据存储。如果想让TERSUS开发的应用数据存储在客户端本地,则需要为应用的最底层的系统对象设定***clientSideDatabase***属性值为“local”,这时,所有在应用中不在“Service服务器端行为处理元件”中开发数据处理业务都针对本地存储数据进行处理(在“Service服务器端行为处理元件”中针对数据的操作仍在服务器端处理) ## 离线应用程序 * 离线应用程序的登录、权限管理和功能使用控制需要定制处理,比如确认联网时,与服务器端用户数据进行沟通确认用户状态或首次必须联网验证用户 * 与服务器端数据库数据的同步处理是离线应用程序必有的操作,一般包含以下内容: · 在离线应用开启使用时,如果联网,则将需要的信息由服务器数据库同步至本地存储以备使用(本地数据库或是键值信息MAP对象存储) · 设计存储逻辑:如果增删改查数据时,测试是否联网(有专用元件),如果不联网则数据处理在本地存储对象中 · 设计一个间隔一定时间的定时自动处理逻辑检查联网,或联网时由用户某个行为触发进行本地数据变更内容的与服务器数据的同步变更操作 * 注意离线应用程序无代码开发可以是原生应用,也可以在网页程序中 * 更多离线应用程序也可以搜索网上其他信息进行了解