示例JQuery自動完成代碼。我可以通過兩個獨立的自動完成安裝來調用一個函數,它允許我共享相同的功能,而不需要重寫代碼 。自動完成之間的JQuery共享功能
$("tags1").autocomplete(
{
source: availableTags
});
爲了確保清楚。我不想重複代碼。所以,當我在別處使用另一個自動完成時,我想引用自動完成中包含的代碼,而不是重複代碼(我只是重複自己)
示例JQuery自動完成代碼。我可以通過兩個獨立的自動完成安裝來調用一個函數,它允許我共享相同的功能,而不需要重寫代碼 。自動完成之間的JQuery共享功能
$("tags1").autocomplete(
{
source: availableTags
});
爲了確保清楚。我不想重複代碼。所以,當我在別處使用另一個自動完成時,我想引用自動完成中包含的代碼,而不是重複代碼(我只是重複自己)
你可以做一個手動ajax獲取請求來獲取數據,那麼這兩個autocompletes只是該變量。
var cache = {},
requestData = function(request, response) {
var term = request.term;
if(term in cache) {
response(cache[term]);
return;
}
$.getJSON("search.php", request, function(data, status, xhr) {
cache[term] = data;
response(data);
});
};
$("#birds").autocomplete({
minLength: 2,
source: requestData
});
$("#moreBirds").autocomplete({
minLength: 2,
source: requestData
});
來源:http://jqueryui.com/resources/demos/autocomplete/remote-with-cache.html
但你真的應該從服務器告訴客戶端緩存請求的結果發送緩存頭。然後,當第二次自動完成請求時,瀏覽器不必再次打開服務器。
這是關於這個問題的一個偉大的文章:https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers
請問您自動完成數據不依靠什麼鍵入到文本框?自動完成數據是從服務器發送的嗎? – Dve 2013-02-13 10:57:51
@DVE是的,但我有兩個完全相同的,不想重複的代碼。 – Jonathan 2013-02-13 11:00:53