2014-01-30 2 views
0

온라인으로 http://dev.yathit.com/demo/ydn-db-text/animals/animals.html 데모를 열었습니다. 그러나 오프라인 모드에서이 데모를 사용하려고하면 문제가 발생합니다.오프라인 일 때 ydn-db 전문어 검색 데모가 작동하지 않음 : this.db.search가 함수가 아닙니다.

크롬 (--allow-file-access-from-files 플래그 사용) : 내가 입력에 뭔가를 입력 한 후

이러한 오류 메시지

은 오른쪽에 나타날

Uncaught TypeError: Object [object Object] has no method 'search' --> animals.js:111 
    Animals.handleSearch 

파이어 폭스 :

TypeError: this.db.search is not a function 
    var rq = this.db.search('name', this.ele_input_.value); 
    animals.js (line 111) 

그건 그렇고, 내가 가진 "2359 마리의 동물이 짐을 싣고 색인을 달았습니다." 메시지는 데이터베이스가로드되었음을 의미하지만 var rq = this.db.search('name', this.ele_input_.value)의 문제점은 무엇입니까?

UPDATE
내가 https://github.com/yathit/ydn-db-fulltext/blob/master/examples/animals/animals.html 소스를 확인하고, 지금은 문제 참조 : 충분하지 않은 두 지역의 js 파일 (ydn-db.jsanimals.js)를,이 응용 프로그램 종속성을 많이 가지고 :

<script src="../../../closure-library/closure/goog/base.js"></script> 
<script src="../../../closure-library/closure/goog/deps.js"></script> 
<script src="../../../ydn-base/src/deps.js"></script> 
<script src="../../../ydn-db/src/deps.js"></script> 
<script src="../../../natural/js/deps.js"></script> 
<script src="../../../fullproof/js/deps.js"></script> 
<script type="text/javascript" 
     src="../../../fullproof/js/tokenizer/categ_letters_numbers.js"></script> 
<script type="text/javascript" 
     src="../../../fullproof/js/tokenizer/normalizer_lowercase.js"></script> 
<script type="text/javascript" 
     src="../../../fullproof/js/tokenizer/normalizer_lowercase_nomark.js"></script> 
<script type="text/javascript" src="../../src/deps.js"></script> 
<script type="text/javascript"> 
    goog.require('ydn.debug'); 
    goog.require('ydn.db.crud.Storage'); 
    goog.require('ydn.db.crud.Storage.text'); 
</script> 
<script src="../../../ydn-db/config/crud.js"></script> 
<script type="text/javascript" src="../../../ydn-db/src/ydn/db/tr/inject.js"></script> 
<script type="text/javascript" src="../../../ydn-db/src/ydn/db/crud/inject.js"></script> 

하지만, 해당 파일은 다운로드 가능한 zip 패키지에 포함되어 있지 않습니다.

+0

컴파일 된 후에는 이러한 종속성이 필요하지 않습니다. –

답변

1

다른 ydn-db js 파일을 사용하고있는 것 같습니다. 대부분의 ydn-db 배포 파일에는 전체 텍스트 검색 모듈이 없습니다.

웹 페이지는 클라이언트 측 HTML입니다. 그것은 작동해야합니다. IndexedDB는 유효한 출처에서 서비스해야하므로 테스트를 위해 서버를 가동시켜야합니다. --allow-file-access-from-files은 내가 믿지 않는 것과는 관련이 없습니다.

데모에서 js 파일을 사용 했습니까?

+0

업데이트를 확인할 수 있습니다. 그건 그렇고,'allow-file-from-files'는 무의미한 것이 아닙니다. 이 플래그를 설정하지 않으면'XMLHttpRequest가 file : ///path/to/data.csv를로드 할 수 없습니다. 교차 원점 요청은 AJAX에 의해 데이터베이스가로드되기 때문에 HTTP' 오류에 대해서만 지원됩니다! 하지만 필요한 js 파일에 대한 전체 URL 목록을 제공 할 수 있습니까? (다운로드 할 수있는 github zip 패키지에 포함되어 있지 않기 때문에) –

+1

오해해서 죄송합니다. 이 웹 페이지는'file' 프로토콜로 실행되지 않습니다. –

+0

하지만 이유를 설명해 주시겠습니까? 이 응용 프로그램에 서버 측 종속성 (클라이언트 측 코드 만)이 없으면'file : //'프로토콜에 어떤 문제가 있습니까 ??? –