3

我无法让 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 和 google chrome 查看错误是否存在。

一定有一些重要的东西我错过了,因为我已经用尽了我能想到的所有错误来源。其他人似乎没有任何问题让这个工作。

这是我使用的代码:

<!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>
4

1 回答 1

10

似乎问题与浏览器存储中的数据缓存有关。

  1. 您可以清理浏览器存储(不是浏览器缓存)。
  2. 您可以将nametypeahead 配置中的数据集更改为另一个数据集。
  3. 你可以降低ttlin prefetch。当然,您可以增加ttl后者。见下文:

    prefetch: {
        url: 'http://twitter.github.io/typeahead.js/data/countries.json',
        ttl: 1 // in milliseconds
    },        
    

如果你浏览这里的代码会更清楚:http: //goo.gl/TN3Gv

于 2013-07-06T13:32:08.877 回答