1
我有一個jQuery自動填充字段,當用戶開始在字段中輸入城市名稱時,查找城市名稱和相應的ZIP(美國郵政編碼)。jQuery自動完成:預緩存查詢以提高性能?
MySQL數據庫包含大約44,000行美國郵政編碼。查詢本身在選擇所有城市名稱和郵政編碼時可以快速運行(0.0002秒)。
會不會有任何好處,以「預緩存」所有的結果(SELECT place_name
,postal_code
FROM postal_codes
WHERE country_code
=「美國」),以便自動完成功能的負荷快速地爲用戶?
編輯:整個JSON列表是600KB和負荷在2-3秒的瀏覽器(根據谷歌瀏覽器控制檯)
目前代碼:
<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" />
你可以預緩解它,但你必須與帶寬相抗衡。完整名單將是相當大的。 'preaching'就像你所說的那樣,只有當它更快地將整個列表傳送給客戶端時纔有意義,而不是僅僅根據需要進行查找。如果用戶必須等待10秒才能下載整個列表,那比沒有緩存更糟糕。 (也就是說,除非你的列表很小,否則它可能沒有意義) – barryhunter
看看['jQuery Autocomplete的遠程緩存演示'](http://jqueryui.com/autocomplete/#remote-with-cache) – Dom