From e95a732c2cc06a8db2fb45d2d842fc5d5542e33a Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Thu, 16 Mar 2017 20:28:41 +0000
Subject: [PATCH] Wait 100 ms before requesting stop name autocompletion
---
index.js | 39 +++++++++++++++++++++++----------------
1 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/index.js b/index.js
index 21962ba..dfbdf7c 100644
--- a/index.js
+++ b/index.js
@@ -12,6 +12,7 @@
var stop_name_form = stop_name.form;
var stop_name_autocomplete = document.getElementById('stop-name-autocomplete');
var stop_name_autocomplete_xhr;
+var stop_name_autocomplete_timer;
var times_xhr;
var times_timer;
@@ -495,6 +496,26 @@
}
}
+function stop_autocomplete() {
+ if(stop_name_autocomplete_xhr) stop_name_autocomplete_xhr.abort();
+
+ stop_name_autocomplete_xhr = $.get(
+ ttss_base + '/lookup/autocomplete/json'
+ + '?query=' + encodeURIComponent(stop_name.value)
+ ).done(function(data) {
+ deleteChildren(stop_name_autocomplete);
+ for(var i = 1, il = data.length; i < il; i++) {
+ if(data[i].id > 6000) continue;
+ var opt = document.createElement('option');
+ opt.value = data[i].id;
+ setText(opt, decodeEntities(data[i].name));
+ stop_name_autocomplete.appendChild(opt);
+ }
+
+ if(!stop_id) setText(refresh_text, lang.select_stop_click_go);
+ }).fail(fail_ajax);
+}
+
function init() {
if(!window.jQuery) {
fail(lang.jquery_not_loaded);
@@ -512,23 +533,9 @@
stop_name.addEventListener('input', function(e) {
if(!stop_name.value) return;
- if(stop_name_autocomplete_xhr) stop_name_autocomplete_xhr.abort();
+ if(stop_name_autocomplete_timer) clearTimeout(stop_name_autocomplete_timer);
- stop_name_autocomplete_xhr = $.get(
- ttss_base + '/lookup/autocomplete/json'
- + '?query=' + encodeURIComponent(stop_name.value)
- ).done(function(data) {
- deleteChildren(stop_name_autocomplete);
- for(var i = 1, il = data.length; i < il; i++) {
- if(data[i].id > 6000) continue;
- var opt = document.createElement('option');
- opt.value = data[i].id;
- setText(opt, decodeEntities(data[i].name));
- stop_name_autocomplete.appendChild(opt);
- }
-
- if(!stop_id) setText(refresh_text, lang.select_stop_click_go);
- }).fail(fail_ajax);
+ stop_name_autocomplete_timer = setTimeout(stop_autocomplete, 100);
});
setText(refresh_text, lang.enter_stop_name_to_begin);
--
Gitblit v1.9.1