0

Chrome 확장 프로그램을 사용하여 클라이언트가 어떤 동작을 확인하기 위해 어떤 URL을 확인해야하는지 확인하지만 URL에 따라 동작이 크게 다릅니다.크롬 확장 프로그램이 클라이언트 저장 용량을 활용할 수 있습니까?

사용하는 데 가장 유용한 유형의 데이터 구조가 URL을 기본 키로하는 데이터베이스와 비슷하게 달라집니다.

클라이언트 저장소를 활용할 수 있습니까? 브라우저 자체가로드 될 때 데이터베이스를로드해야하므로 이벤트 페이지에 거대한 DS를로드하지 않고 확장자가 정보를 가져올 수 있습니다.

나는 이것이 가능할 것이라고 생각 하겠지만 클라이언트 저장소에 대해 읽는 내용은 URL을 기반으로 할당된다고 말합니다.

내 Chrome 확장 프로그램에서 클라이언트 저장소를 사용할 수 있습니까? 그렇다면 어떻게해야하나요?

답변

2

많은 옵션이 있습니다.

좋은 이전 localStorage은 URL이 아닌 의 출처 인에 바인딩됩니다. 광고 확장의 내부 페이지 (예 : 배경 페이지는 항상 chrome-extension://<your-id-here>/입니다. 콘텐츠 스크립트의 경우는 아니지만 배경 페이지를 Messaging 인 데이터 저장소의 "서버"로 사용할 수 있습니다.

더 나은 옵션은 chrome.storage API입니다. 확장 스크립트와 콘텐트 스크립트 모두에 동일한 스토리지에 대한 액세스를 제공합니다.

두 옵션 모두 키 - 값 저장소입니다. 적절한 데이터베이스가 필요한 경우 더 많은 옵션이 있습니다.

확실한 것은 IndexedDB입니다. 또한 도메인에 바인딩되어 있기 때문에 다시 배경 페이지가 저장 영역 액세스를 수행해야하며 컨텐트 스크립트 (있는 경우)가 메시지를 보내야합니다.

또 다른 해결책은 WebDatabase이며 더 이상 표준 트랙에없는 사양이지만 크롬은 잠시 동안 지원을 중단하지 않을 것입니다. 동일한 동일 출처

좀 더 이국적인 컴퓨터는 HTML FileSystem을 사용하여 원하는 모든 DB를 호스팅 할 수 있습니다. SQLite. 다시 말하지만, 이것은 크로스 브라우저가 아닌 해결책이지만 Chrome은 계속해서이를 지원할 것입니다.

+0

안녕하세요, 감사합니다. chrome.storage와 함께 갈 것 같지만 데이터베이스를 만드는 방법에 대해 어떻게 대답 할 수 있습니까? 내가 혼란스러워하는 한 가지는 값을 설정하는 부분입니다. 앱을 다운로드하거나 broser를 열 때마다 방금 생성 된 데이터베이스를 만들고 싶습니다. (가능하다면 전자, 그렇지 않으면 후자), 그래서 이벤트 페이지 나 컨텐츠 스크립트에서 DB를 초기화하고 싶지 않습니까? – LukeP

관련 문제