2014-07-23 2 views
1

W3 Web Storage specs에 따르면 localStorage의 값은 string 유형입니다.JavaScript로 localStorage를 편집하는 성능이 좋습니까?

따라서, 항목을 세부적으로 JS 객체의 하위 속성처럼 업데이트되지 않을 수 있으며 전체 키 교환 만 가능 : 자주

Updating/editing localStorage - JSONObject

내가 "보호"할 가정 사용자 입력을 localStorage의 클라이언트 측에서 실행하고 모델 변경 사항을 서버에서 업데이트합니다 (서버에서 클라이언트로 변경 사항 만 전송). JSON.stringify() 로컬 데이터 (= ViewModel 상태)는 얼마나 자주 사용자에게 문제를 일으키지 않고 localStorage에 저장할 수 있습니까? 직렬화 및 저장 중 (전송하지 않음). 예 : 로컬 로그에 5 초마다 30KB의 데이터가 래깅을 야기할까요?

보너스 질문 : 주요 브라우저 공급 업체가 localStorage에 JS 객체를 직접 저장할 계획입니까?

답변

0

이것은 완전히 사실 일 수 없습니다. 로컬 스토리지에있는 객체에 단일 키를 업데이트하는 방법이 있으며 코드는 아래에 있습니다.

var updateLocalStorageKey = function(obj, key, val) { 

    var localObj = JSON.parse(localStorage[obj]) 

    localObj[key] = val; 

    //reset storage 

    localStorage[obj] = JSON.stringify(localObj) 
} 

작업 jsbin

은 여기에 있습니다 : http://jsbin.com/jesapifa/4/edit?html,js,output

희망이 당신의 문제를 해결!

+0

감사합니다.하지만 기본적으로 JSON을 JS 객체로 deserialize하고, 요소를 변경하고 JSON으로 다시 serialize합니다. 내 ViewModel이 직접 조작을 위해 JS 객체로 데이터를 보유하고 있기 때문에 꽤 비효율적입니다. JSON 구문 분석을 피하고 객체를 직접 문자열 화하고 localStorage 키를 덮어 쓸 수 있습니다. – CoDEmanX

관련 문제