2011-03-10 6 views
1

나는 firefox addon에 sqlite 데이터베이스 mydb.sqlite이 있습니다. 선택한 링크의 데이터베이스이고 gBrowser에 대한로드 이벤트가 있습니다. 이제 각로드 이벤트에서 content.document.location을 확인하는 코드를 작성하고 현재 열려있는 링크가 데이터베이스에 있거나 데이터베이스에없는 경우 (예 : 상태 표시 줄의 일부 아이콘 사용) 알려줍니다.firefox addon 이벤트시 sqlite 데이터베이스 확인

효율적으로 수행하는 방법을 알고 계십니까? 그래서 그것은 파이어 폭스를 많이 늦추지 않을 것인가?

는 모든 페이지로드가 터 DOMContentLoaded 이벤트에 대해 듣고해야 당신에게

답변

1
  1. 감사

  2. 할 수 있습니다 (e.target.defaultView.location.href를 사용하여 DOMContentLoaded 핸들러 내에서로드 된 페이지의 URL을 얻을 여기서 e은 콜백에서 첫 번째 매개 변수의 이름을 지정해야합니다.

  3. 이제이 URL과 DB의 내용을 비교하십시오. asynchronous statement execution (Firefox 3.5 이상 만 사용)을 사용하면 주 스레드를 불필요하게 차단하지 않습니다.

  4. This excellent tutorial 상태 표시 줄을 업데이트하는 방법을 알려드립니다.

+0

감사합니다. 유용한 정보와 3 단계에서 어떻게 비교해 주시겠습니까? Sequantialy는로드 된 href가있는 모든 레코드의 링크를 비교합니까? 얼마 동안 10000 개의 링크가 있다면? 여전히 효능이 있습니까? 아니면 효율성을 높이기위한 트릭이 있습니까? – xralf

+0

@xralf - DB를 사용하면됩니다. 현재 방문중인 페이지의 URL과 일치하는 레코드를 요청하는 테이블을 쿼리하십시오. 쿼리에서 결과를 반환하면 일치하는 항목을 찾았습니다. 테이블 크기를 제한하고 적절한 인덱스를 만들려면 URL 열에 UNIQUE 제약 조건을 지정해야합니다. 네가 잘되어야한다고 생각해. –

+0

고마워 ... – xralf

관련 문제