我是PWA的新手,还搜索了答案,但没有成功。
我知道当Internet断开时,通过使用indexdb,PWA可以处理所有数据库事务。
为了保持一致,我需要在服务器端进行一些计算,但是想知道是否可以通过使用PWA来本地处理这些计算。
任何建议将不胜感激。
答案 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.js
:node handleSum.js