2017-09-14 122 views
-1

我有一个URL,其中包含一些JSON格式的数据。我想在加载页面时将此数据保存在本地浏览器内存中。后来我需要使用这个本地副本作为我的JQuery自动完成的源代码。此刻,我将自动完成源指向此URL,因此它非常频繁地调用该服务。 请帮我保存浏览器本地内存中的数据,以及如何将它用于jQuery autocomple。 谢谢。在页面加载时将json数据保存在浏览器内存中的URL

回答

0

如果你真的想以本地存储它更永久看看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); 
}); 
+0

感谢您的答复。我不想永久保存它。有没有其他方法可以暂时保存它。 – Nidhin

+0

@Nidhin - 我在下面列举了一个例子 –

+0

这是我目前的来源。你可以帮助用“自动完成源”代替它: 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

相关问题