-1
我有一个URL,其中包含一些JSON格式的数据。我想在加载页面时将此数据保存在本地浏览器内存中。后来我需要使用这个本地副本作为我的JQuery自动完成的源代码。此刻,我将自动完成源指向此URL,因此它非常频繁地调用该服务。 请帮我保存浏览器本地内存中的数据,以及如何将它用于jQuery autocomple。 谢谢。在页面加载时将json数据保存在浏览器内存中的URL
我有一个URL,其中包含一些JSON格式的数据。我想在加载页面时将此数据保存在本地浏览器内存中。后来我需要使用这个本地副本作为我的JQuery自动完成的源代码。此刻,我将自动完成源指向此URL,因此它非常频繁地调用该服务。 请帮我保存浏览器本地内存中的数据,以及如何将它用于jQuery autocomple。 谢谢。在页面加载时将json数据保存在浏览器内存中的URL
如果你真的想以本地存储它更永久看看local storage
你应该能够做到像
$(document).ready(function {
$.get('http://example.com', function (data) {
localStorage.setItem('autocomplete', data.toString());
});
然后任何页面上,你可以使用
var autocompleteData = JSON.parse(localStorage.getItem('autocomplete')
$('#myautocomplete').autocomplete({source: autocompleteData});
但是它可能只是声明一个页面范围变量并使用它。这样它每页加载一次,你不需要过期。
<script>
var autocompleteSource;
$(document).ready(function {
$.get('http://example.com', function (data) {
autocompleteSource = JSON.parse(data);
});
$('#myautocomplete').autocomplete({source: autocompleteSource});
});
</script>
这假定您可以用适当的格式将响应解析到数组中。
更新基于评论:
我想你仍然需要在函数作为源传递,因为你正在做一个包含搜索(indexOf(..) != -1
)。
你autocompleteSource将包含所有嵌套数据:也许
$.get('http://example.com', function (data) {
autocompleteSource = [];
data.countries.map(function(itemCountry) {
itemCountry.cities.map(function(itemCity) {
itemCity.destinations.map(function(itemDestination {
autocompleteSource.push(itemDestination);
});
,然后你会宣称只是工作关闭本地数据的方法设置
$('#myautocomplete').autocomplete(source : function (request, response){
var filtered = autocompleteSource.filter(function(item){
return item.toLowerCase().indexOf(request.term.toLowerCase()) > -1
});
response(filtered);
});
感谢您的答复。我不想永久保存它。有没有其他方法可以暂时保存它。 – Nidhin
@Nidhin - 我在下面列举了一个例子 –
这是我目前的来源。你可以帮助用“自动完成源”代替它: source:function(request,response){$ .ajax({url:“* service url *”,success:function(data){var search_data = []; data.countries .map(function(itemCountry.cities.map(function(itemCity)){itemCity.destinations.map(function(itemDestination){if((itemDestination.name.toLowerCase())。indexOf(request.term.toLowerCase ))!= -1){itemDestination.label = itemDestination.name; search_data.push(itemDestination);}});})})response(search_data);}}); } – Nidhin