javascript - Wie teile ich Daten zwischen verschiedenen Browser-Registerkarten? Ist localStorage und sessionStorage möglich?
ringa_lee
ringa_lee 2017-05-19 10:11:00
0
4
1157

Übersicht: Nach der Anmeldung bei einem System gibt es eine Seite zum Konfigurieren einiger Informationen. Nach dem Konfigurieren der Informationen können Sie mit der Bedienung anderer Seiten fortfahren. Meine allgemeine Bediengewohnheit besteht jedoch darin, zwei Registerkarten zu öffnen, und eine Registerkarte ist die Konfigurationsseite, die immer geöffnet ist. Die andere Registerkarte ist die Betriebsseite;

Anforderung 1: Derzeit gebe ich einen Teil der Konfigurationsinformationen in sessionStorage中,但是两个标签页的sessionstorage是不共享的,只有当前页面配置当前页面操作其他页面才有效,至于不用localStorage ein, da die Konfigurationsinformationen immer gespeichert werden und nach dem nächsten Login nicht aktualisiert werden.

Anforderung 2: Wenn die aktuelle Front-End-Erfassung sessionStorage中的信息的逻辑是这样的,如果存在该item并且不为空,便直接用了,不会去后台取,这样的问题是多用户端场景时,其他用户更改了配置,当前客户端不能及时获取最新配置信息,我有一个思路是参照http 3xx的做法,每次前台get配置信息时,都往后台放松一个请求,如果lastmodifiedtime unverändert bleibt, verwenden Sie weiterhin lokale Daten. Sobald sie sich ändern, werden die neuesten Konfigurationsinformationen zurückgegeben. Wenn Sie gute Vorschläge haben, teilen Sie diese bitte mit.

Ich frage mich, ob jemand bessere Ideen und Vorschläge hat

ringa_lee
ringa_lee

ringa_lee

Antworte allen(4)
仅有的幸福

如果我面对这样的需求,我的做法:

需求1: 采用LocalStorage, 但是Key名会携带过期时间,比如item&1494485763;

需求2: 每次请求配置项,request 请求携带最后一次修改时间的cookie值;如果最后修改时间相同,则空返回,使用本地数据;否则返回最新的配置项;

phpcn_u1582

localStorage,然后你在登录页welcome那个页面重置一下,不就可以了吗?

然后需求2就是设置一下过期时间呗。如果上次一个的localstorage过了十分钟了。重新拉取一次数据。

大家讲道理

localStorage 或者 indexedDB 均可;
对于缓存的数据的处理,可以设计过期机制,也可以对每次的事务生成 UUID,事务全部完成以后清理掉缓存。

世界只因有你

localStorage完全可以解决,在你存储的信息有变化的情况下,更新下localStorage中对应的存储信息就可以了。当然如果有敏感信息是不能存储在浏览器的。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage