javascript - 서로 다른 브라우저 탭 간에 데이터를 공유하는 방법은 무엇입니까? localStorage와 sessionStorage가 가능합니까?
ringa_lee
ringa_lee 2017-05-19 10:11:00
0
4
1186

개요: 시스템에 로그인하면 일부 정보를 구성할 수 있는 페이지가 있습니다. 정보를 구성한 후 다른 페이지를 계속 조작할 수 있습니다. 하지만 저의 일반적인 작업 습관은 탭 두 개를 여는 것입니다. 항상 열려 있는 구성 페이지 다른 탭 페이지는 작업 페이지입니다.

요구 사항 1: 구성 정보는 항상 저장되고 다음 로그인 이후에는 업데이트되지 않기 때문에 현재 구성 정보의 일부를 sessionStorage中,但是两个标签页的sessionstorage是不共享的,只有当前页面配置当前页面操作其他页面才有效,至于不用localStorage에 넣었습니다.

요구 사항 2: 현재 프런트 엔드 획득 sessionStorage中的信息的逻辑是这样的,如果存在该item并且不为空,便直接用了,不会去后台取,这样的问题是多用户端场景时,其他用户更改了配置,当前客户端不能及时获取最新配置信息,我有一个思路是参照http 3xx的做法,每次前台get配置信息时,都往后台放松一个请求,如果lastmodifiedtime이 변경되지 않은 경우 로컬 데이터를 계속 사용하세요. 변경되면 최신 구성 정보가 반환됩니다. 좋은 제안이 있으면 공유해 주세요.

혹시 더 좋은 아이디어나 제안이 있으신지 궁금합니다

ringa_lee
ringa_lee

ringa_lee

모든 응답(4)
仅有的幸福

그러한 필요에 직면하면 내가 하는 일은:

요구 사항 1: LocalStorage를 사용하지만 키 이름에는 item&1494485763;

과 같이 만료 시간이 포함됩니다.

요구 사항 2: 구성 항목이 요청될 때마다 요청 요청은 마지막 수정 시간의 쿠키 값을 전달합니다. 마지막 수정 시간이 동일하면 비어 있는 값을 반환하고 그렇지 않으면 최신 구성 항목을 반환합니다.

phpcn_u1582

localStorage를 사용한 다음 로그인 페이지의 시작 페이지에서 재설정하면 충분하지 않나요?

그러면 요구사항 2는 만료 시간을 설정하는 것입니다. 마지막 로컬 저장소 이후 10분이 경과한 경우. 데이터를 다시 가져옵니다.

大家讲道理

localStorage 또는 indexedDB를 사용할 수 있습니다.
캐시된 데이터 처리를 위해 만료 메커니즘을 설계하거나 각 트랜잭션에 대해 UUID를 생성하고 모든 트랜잭션이 완료된 후 캐시를 지울 수 있습니다.

世界只因有你

localStorage는 문제를 완전히 해결할 수 있습니다. 저장한 정보가 변경된 경우 localStorage에서 해당 저장 정보를 업데이트하면 됩니다. 물론, 민감한 정보가 있을 경우에는 브라우저에 저장할 수 없습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿