【发布时间】:2014-02-22 06:02:33
【问题描述】:
我在网上打开了http://dev.yathit.com/demo/ydn-db-text/animals/animals.html 演示,它成功了。但是当我尝试在离线模式下使用这个演示时,出现了问题。
这些错误消息在我输入内容后立即出现:
Chrome(启用--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)有什么问题?
更新
查了https://github.com/yathit/ydn-db-fulltext/blob/master/examples/animals/animals.html源码,现在看到问题了:两个本地js文件(ydn-db.js和animals.js)不够用,这个app依赖很多:
<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 包中。
【问题讨论】:
-
编译后不需要这些依赖。
标签: javascript indexeddb ydn-db