0

저는 사용자의 데이터를 저장해야하는 크롬 확장 프로그램을 개발 중입니다. 이를 위해 mysql 데이터베이스를 실행중인 호스트 된 서버를 사용하고 있습니다. 그러나 현재 데이터가 추가되거나 변경되면 호스트 서버에 요청이 전송됩니다.크롬 확장을 위해 원격으로 호스팅되는 데이터베이스와 함께 chrome.storage를 사용하는 방법은 무엇입니까?

크롬 확장 프로그램은 최대 5MB의 데이터를 저장하는 데 적합한 chrome.storage.local API를 제공합니다. 임시 저장소로 사용하여 호스팅 된 서버에 대한 요청 수를 줄이려면이 저장소 API를 활용하고 싶습니다.

chrome.storage.onChanged.addListenerchrome.storage.local.getBytesInUse을 사용하여 저장된 데이터가 특정 임계 값을 넘어 갔는지 확인한 다음 데이터를 저장하기 위해 원격 서버에 대해서만 ajax 요청을 실행하십시오. 성공적으로 응답하면 chrome.storage의 이전 데이터가 플러시됩니다.

그러나 서버에서 요청/응답주기 프로세스 중에 생성되는 새로운 데이터가 손실 될 가능성이 있습니다.

데이터 손실을 방지하려면 어떻게해야합니까? 확장으로부터 원격 서버에 대한 요청의 수를 줄이는이 최적화 문제에 대한 대체 솔루션이 있습니까?

감사합니다.

+1

FWIW 권한을 추가하여 5MB 제한을 극복 할 수 있습니다 : [ "unlimitedStorage"]'. – wOxxOm

+0

@wOxxOm, 나는 알고있다. 그러나 나는 또한 그들의 저장된 데이터를 보여주는 우리 확장의 사용자를위한 웹 인터페이스를 가지고있다. 이를 위해 호스팅 된 서버에 데이터를 보내야합니다. 따라서 5MB 제한을 늘리면 내 문제가 완전히 해결되지 않습니다. –

답변

0

크롬 확장에 대한 질문이 아닙니다. 오프라인으로 작업하고 지능적으로 동기화하는 영구 데이터베이스에 대해 자세히 설명합니다. 어떤 일은 옳은 일을하는 데 매우 어려운 문제입니다.

가장 쉬운 방법은 chrome.storage.sync를 사용하는 것입니다. 제한된 저장 용량에 대한 경고로 무료로 영구 구매할 수 있습니다. 다른 옵션을 시도하기 전에 가능한지 확실히 확인해야합니다.

그렇지 않은 경우 솔루션을 롤링하기 전에 타사 옵션을 살펴 보는 것이 좋습니다. 오프라인으로 작업하는 프로그레시브 웹 앱에 대해 들어 보셨을 것입니다. 인터넷을 사용할 수있을 때 동기화하십시오. 이들에 Google Tutorial

PouchDB, a well regarded web database that works offline and syncs to other databases

An article about the advantages of progressive web apps 봐. 그것은 문제의 가치가있을거야. 그렇지 않으면 해킹을 기반으로 해킹을 구축하여 동기화가 작동하도록하려고합니다.

... 마지막으로 하나 ... manifest's permissions에 원격 데이터베이스의 URL을 추가하십시오.

+0

감사합니다. 링크가 도움이되었습니다. 내 문제에 영구 데이터베이스를 사용할 수 있기를 기대합니다. 그러나 위에서 언급 한 웹 데이터베이스에 저장된 데이터가 높은 시나리오에 대해 우려했습니다. 확장 기능이나 크롬 브라우저의 성능이 사용자 측에서 영향을 줍니까? –

+0

빌드 방법에 따라 다릅니다. 당신에게 더 나은 대답을주기에는 너무 많은 요소가 있습니다. – Eejdoowad