互联网关闭时,渐进式Web应用程序可以执行服务器端计算吗

时间:2019-05-29 17:24:11

标签: progressive-web-apps

我是PWA的新手,还搜索了答案,但没有成功。

我知道当Internet断开时,通过使用indexdb,PWA可以处理所有数据库事务。

为了保持一致,我需要在服务器端进行一些计算,但是想知道是否可以通过使用PWA来本地处理这些计算。

任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为,就体系结构设计而言,最好在服务器端或客户端进行计算,但不要两者都进行。为了保持可维护性,请考虑使用DRY principle

因此,在您的情况下,请考虑在本地和服务器端进行计算的需求。为什么它需要在这两个方面中的任何一个?如果服务器执行计算然后存储结果,则可以使用后台同步原理延迟发送数据,并在需要时计算和存储结果。

当客户端立即需要计算结果时,请考虑仅在本地进行计算,并在连接再次可用时通过后台同步将结果发送到服务器。

如果绝对需要在客户端和服务器上都进行计算,请考虑一种架构,在该架构中,可以将执行计算的模块在本地用作服务器端。当服务器和客户端都使用JavaScript(即NodeJS)时,这是可能的。然后,您可以导入该模块服务器端并下载+缓存模块客户端。

答案 1 :(得分:1)

如果要使用node.js,则可以避免代码重复。在这种情况下,您可以在服务器端和客户端重复使用相同的功能

例如:您可以这样写文件summ.js

const sum = (a, b) => a + b;

module.exports = sum;

之后,您可以导入它以在FE上使用:

import sum from './sum'

console.log(sum(1,2));

或在BE上创建node.js文件handleSum.js

const sum = require('./sum');

console.log(sum(1, 2));

,您可以像这样执行handle.jsnode handleSum.js