Mysql jQuery自动完成:预缓存查询以提高性能?
我有一个jQuery自动完成字段,当用户开始在字段中键入城市名称时,它会查找城市名称和相应的邮政编码 MySQL数据库包含大约44000行美国邮政编码。当选择所有城市名称和邮政编码时,查询本身会快速运行0.0002秒 预缓存所有结果(从国家/地区代码='US'的邮政编码中选择地名、邮政编码)是否有任何好处,以便用户更快地加载自动完成功能 编辑:根据Google Chrome控制台,整个JSON列表为600KB,在浏览器中加载时间为2-3秒 当前代码:Mysql jQuery自动完成:预缓存查询以提高性能?,mysql,json,jquery-ui,Mysql,Json,Jquery Ui,我有一个jQuery自动完成字段,当用户开始在字段中键入城市名称时,它会查找城市名称和相应的邮政编码 MySQL数据库包含大约44000行美国邮政编码。当选择所有城市名称和邮政编码时,查询本身会快速运行0.0002秒 预缓存所有结果(从国家/地区代码='US'的邮政编码中选择地名、邮政编码)是否有任何好处,以便用户更快地加载自动完成功能 编辑:根据Google Chrome控制台,整个JSON列表为600KB,在浏览器中加载时间为2-3秒 当前代码: <script type="text/
<script type="text/javascript">
$(function() {
$('#from_country').change(function(){
var val = this.value;
$("#from_zip").autocomplete({
source: "json-list-live-production.php?country=" + val,
minLength: 4,
});
}).change()
$('#del_country').change(function(){
var val = this.value;
$("#del_zip").autocomplete({
source: "json-list-live-production.php?country=" + val,
minLength: 4,
});
}).change()
});
</script>
<input type="text" class="input_text" name="from_zip" id="from_zip" />
<input type="text" name="del_zip" id="del_zip" />
使用GeoNames.org webservice+jQuery Autocomplete查找邮政编码似乎是最快的方法
$( "#from_zip" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://ws.geonames.org/postalCodeSearchJSON",
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
maxRows: 50,
placename_startsWith: request.term,
country: "US"
},
success: function( data ) {
response( $.map( data.postalCodes, function( item ) {
return {
label: item.placeName + (item.adminCode1 ? ", " + item.adminCode1 : "") + " (" + item.postalCode + ")",
value: item.postalCode
}
}));
}
});
},
minLength: 2,
messages: {
noResults: null,
results: function() {}
},
});
你可以预先设置它,但是你必须与带宽抗衡。完整的名单将相当大。”正如你所说的,只有在将整个列表传输到客户端比按需查找更快的情况下,预缓存才真正有意义。如果用户必须等待10秒才能下载整个列表,这比没有缓存更糟糕。除非你的单子很小,否则可能根本就没有意义