2014-05-13 2 views
3
나는 db.js를 사용하여 찾고 있어요

는 색인화에 대한 래퍼 :db.js에서 얼마나 오래 서버 연결을 유지할 수 있습니까?

연결을 지속하기위한 것입니다가 열려 유지하는 동안에 여러 작업을 수행 할 수 있습니다 : 워드 프로세서에서 https://github.com/aaronpowell/db.js

말한다된다 . 더 많은 예제를 보려면/tests/public/specs 폴더를 확인하십시오.

그러나/tests/public/specs 폴더는 존재하지 않습니다.

수행 할 작업 그룹이있을 때마다 새 연결을 열어야합니까? 아니면 한 번 열어서 클라이언트에서 가능하면 오래 캐시해야합니까?

건배, 요르단.

+0

readme가 수정되었으므로'/ tests/specs' 폴더를 참조해야합니다. –

답변

2

연결은 오래 지속되고 재사용됩니다.

여기 the spec이 연결에 대해 말해야하는 내용은 다음과 같습니다

데이터베이스를 여는 행위가 연결을 만듭니다. 지정된 시간에 주어진 데이터베이스에 대한 연결이 여러 개있을 수 있습니다. 각 연결에는 초기에 false로 설정된 closePending 플래그가 있습니다.

연결이 처음 생성되면 연결이 열린 상태입니다. 연결은 여러 가지 방법으로 닫을 수 있습니다. 연결이 인 경우 연결이 생성 된 GCed 또는 실행 컨텍스트가 깨져서 (예 : 해당 페이지에서 사용자가 이동하기 때문에) 연결이 닫힙니다. 연결은 데이터베이스 연결을 닫기위한 단계를 사용하여 명시 적으로 닫을 수도 있습니다 ( ). 연결이 닫히면 closePending 플래그는 이미 이 아닌 경우 항상 true로 설정됩니다.

IDBDatabase 인터페이스는 데이터베이스에 대한 연결을 나타냅니다. "는있는 한

: 당신이 수정 스키마에 의해 versionchange 이벤트를 트리거 할 때 내 경험에

, 당신은 긴 수명과로 실행하겠습니다 유일한 문제는, 다시 사용하는 데이터베이스 연결은 versionchange "트랜잭션이 실행 중이면 같은 데이터베이스에 대한 연결이 더 이상 지연되고 추가 연결을 시작하기 위해 동일한 연결을 사용하려고 시도하면 예외가 throw됩니다 ( ).

개인적으로 나는 개인적으로 연결을 재사용하지 않기 위해 내 라이브러리를 설계했습니다. 하지만 대부분의 상황에서 재사용이 잘되어야합니다.

관련 문제