提问:如何设计含复杂数据客户端存储交互的前端架构

本文探讨了一个前端在线编辑器程序的数据缓存管理和状态更新问题。作者使用localStorage进行数据存储和更新,通过自定义资源工厂类来简化操作流程。面对复杂的对象属性管理和实时更新需求,寻求更高效的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近,在做一个前端在线的编辑器web程序。开发过程中,有很多前端缓存数据,数据的逻辑处理,并且还有很多的状态更新。

因没有用一些mvvm框架,暂时处理的方式如下:

1.数据缓存:

数据缓存都放在localStorage里,每次发布的时候,会向服务器发送更新数据,页面打开或者刷新的时候,会从服务器拉数据更新本地缓存。也就是说,所有数据流转,都是围绕着缓存的读与取。

2.实体对象:

一些常用的交互对象,我采取逐个封装成javascript对象model,存到body的data属性里面(因为是单页面);并写了工具类专门去存取model值;(这里当对象的属性特别多的时候,真的快把我弄疯了)

3.问题:

但是感觉太烦了,每次需要更新值的时候,都要先取一遍,为了保证其他地方引用的时候能实时,更新值过后必须要再存下,想求教有木有更好的方式?
类似下面结构:

//factory 伪代码
var ResourceFactory = (function(){

    var defaultXXXValue = {
        status:'0',
        updateTime:new Date()
    }

    function ResourceFactory(){}

    ResourceFactory.prototype.setXXX = function(value){
        LocalStorage.set('XXX',value||defaultXXXValue);
    }

    ResourceFactory.prototype.getXXX = function(){
        LocalStorage.set('XXX',value||defaultXXXValue);
    }

    ResourceFactory.prototype.setXXX1 = ...

    ResourceFactory.prototype.getXXX1 = ...

    //...

    return ResourceFactory;
})


//调用伪代码
var resourceFactory = new ResourceFactory();
var resource = resourceFactory.getResource();
resource.status='1';
resource.updateTime = 'XXX';
//....
resourceFactory.setResource(resource);
5.解决方案

待定…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值