찾다

 >  Q&A  >  본문

javascript - 서로 다른 브라우저 탭 간에 데이터를 공유하는 방법은 무엇입니까? localStorage와 sessionStorage가 가능합니까?

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

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

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

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

ringa_leeringa_lee2747일 전1135

모든 응답(4)나는 대답할 것이다

  • 仅有的幸福

    仅有的幸福2017-05-19 10:13:00

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

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

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

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

    회신하다
    0
  • phpcn_u1582

    phpcn_u15822017-05-19 10:13:00

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

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

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:13:00

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

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:13:00

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

    회신하다
    0
  • 취소회신하다