我无法在typeahead.js中获取预取功能,但它可以很好地处理本地数据。我首先尝试链接到返回json对象或列表的servlet,但过了一段时间我放弃了它并开始检查提供的示例。所以他们的例子链接到看起来像这样的页面: http://twitter.github.io/typeahead.js/data/countries.json 但是,即使我做了与他们完全相同的事情,当我将它链接到该页面时,我的脚本甚至不起作用。我尝试将该文件复制到我的本地工作区并链接到那里无济于事。为了检查它是否正在进行任何调用我每次收到get请求时都会使servlet崩溃,当我运行自动完成示例页面时它确实崩溃了,因此它不是缓存问题。我尝试将jquery降级到1.9.1,但这也不起作用(目前使用1.10)。我尝试使用不同版本的typeahead.js。我尝试使用Internet Explorer和谷歌浏览器查看错误是否存在。
我必须有一些至关重要的东西,因为我已经用尽了我能想到的每一个错误来源。其他人似乎没有任何问题让这个工作。
以下是我使用的代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Demo</title>
<link rel="stylesheet" type="text/css" href="typeahead.js-bootstrap.css">
</head>
<body>
<script src="jquery.js"></script>
<script src="typeahead.js"></script>
<input type="text" class="typeahead" placeholder="test" />
<script>
$(document).ready(function() {$('.typeahead').typeahead({
name: "Auto" ,
ttl_ms: 10000,
prefetch: 'http://twitter.github.io/typeahead.js/data/countries.json',
//local: ['abc', 'acd', 'ade', 'bcd]
});});
</script>
</body>
</html>
答案 0 :(得分:9)
似乎问题与浏览器存储中的数据缓存有关。
name
更改为另一个。您可以降低ttl
中的prefetch
。当然,您可以稍后增加ttl
。见下文:
prefetch: {
url: 'http://twitter.github.io/typeahead.js/data/countries.json',
ttl: 1 // in milliseconds
},
如果您在此处浏览代码将更加清晰:http://goo.gl/TN3Gv