Angular 2/4中的离线和在线功能

时间:2017-04-29 05:32:48

标签: angular angular2-forms angular2-services

我必须在点击按钮时实现离线和在线功能。

  1. 当用户点击按钮A时,整个应用程序应该进入离线模式(即页面需要缓存,表格中的任何新条目都将存储在浏览器的内存中)
  2. 当用户点击按钮B时,需要将存储的数据推送到数据库。
  3. 请帮助我如何实现此功能。

1 个答案:

答案 0 :(得分:0)

DIY版:

首先,您需要在服务中加一个开关。如果它处于本地模式,则在客户端缓存或存储所有数据。最好在数据中有一个标志,用于判断数据是否已同步到服务器。如果它处于服务器模式下,请执行将所有数据推送到服务器端所需的任何操作。

其次,您需要在后台使用监视器服务,或者在启用服务器模式时,同步操作将被踢一次。操作或后台进程将检查任何未同步的数据并将其推送到服务器。完成后,将其标记为已同步。

这是一般的想法。

我的想法代码实现这一目标。创建父服务类:

class BaseService {
    protected execute(online: any, offline: any){
        if (this.config.mode == 'online')
            online();
        else
            offline();
    }
}

在实际的儿童服务中

... extends BaseService {
    saveEmployee() {
        this.execute(() => {
            // do online stuff
        }, () => {
            // do offline stuff
        });
    }
}