带有巨大动态 json 文件的自动完成下拉菜单
auto complete dropdown with huge and dynamic json file
我正在寻找一个自动完成下拉框的解决方案,它需要从一个巨大的 json 中加载条目(json 文件也在每秒更新/生成。)
我试过 "typeahead.js" 但默认情况下它会在浏览器中缓存 json 文件并且无法显示添加到 json 文件的新条目。
是否有自动完成文本框的解决方案,可以尽快从服务器加载条目?
请多多指教。
谢谢
对于您的情况,您可以利用 typeahead.js 建议引擎 Bloodhound。它提供了两个选项。预取和远程。
在预取中,数据在初始化时被获取和处理。如果浏览器支持本地存储,处理后的数据将缓存在那里,以防止在后续页面加载时进行额外的网络请求。
在 Remote 中,它会在您需要时从远程源获取数据。但请记住,为了防止向远程端点发出大量请求,请求是有速率限制的。
我认为您应该根据自己的情况使用远程选项。
参考:Link
typeahead.js
的文档中提到了两种方法
您可以为预取设置 TTL 值 = 1(这对我没用)
https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
或者您可以在点击页面加载或点击按钮时使用 clearPrefetchCache。
category.clearPrefetchCache();
我正在寻找一个自动完成下拉框的解决方案,它需要从一个巨大的 json 中加载条目(json 文件也在每秒更新/生成。)
我试过 "typeahead.js" 但默认情况下它会在浏览器中缓存 json 文件并且无法显示添加到 json 文件的新条目。
是否有自动完成文本框的解决方案,可以尽快从服务器加载条目?
请多多指教。 谢谢
对于您的情况,您可以利用 typeahead.js 建议引擎 Bloodhound。它提供了两个选项。预取和远程。
在预取中,数据在初始化时被获取和处理。如果浏览器支持本地存储,处理后的数据将缓存在那里,以防止在后续页面加载时进行额外的网络请求。
在 Remote 中,它会在您需要时从远程源获取数据。但请记住,为了防止向远程端点发出大量请求,请求是有速率限制的。
我认为您应该根据自己的情况使用远程选项。
参考:Link
typeahead.js
的文档中提到了两种方法您可以为预取设置 TTL 值 = 1(这对我没用)
https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
或者您可以在点击页面加载或点击按钮时使用 clearPrefetchCache。
category.clearPrefetchCache();