Skip to content

Commit c523437

Browse files
Add ajax internal method to manage response already known and remote call to do
1 parent 28a3608 commit c523437

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

src/autocomplete.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,16 @@ class AutoComplete {
213213
this.DOMResults.setAttribute("class", "autocomplete open");
214214
}
215215

216-
AutoComplete.prototype.ajax(this, function(request: XMLHttpRequest) {
216+
var callback: any = function(request: XMLHttpRequest) {
217217
this._Render(this._Post(request.response));
218218
this._Open();
219-
}.bind(this));
219+
}.bind(this);
220+
221+
AutoComplete.prototype.cache(
222+
this,
223+
AutoComplete.prototype.makeRequest(this, callback),
224+
callback
225+
);
220226
}
221227
},
222228
Operator: ConditionOperator.AND,
@@ -612,23 +618,27 @@ class AutoComplete {
612618
return request;
613619
}
614620

615-
ajax(params: Params, callback: any, timeout: boolean = true): void {
621+
ajax(params: Params, request: XMLHttpRequest, timeout: boolean = true): void {
616622
if (params.$AjaxTimer) {
617623
window.clearTimeout(params.$AjaxTimer);
618624
}
619625

620626
if (timeout === true) {
621-
params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, callback, false), params.Delay);
627+
params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);
622628
} else {
623629
if (params.Request) {
624630
params.Request.abort();
625631
}
626632

627-
params.Request = AutoComplete.prototype.makeRequest(params, callback);
633+
params.Request = request;
628634
params.Request.send(params._QueryArg() + "=" + params._Pre());
629635
}
630636
}
631637

638+
cache(params: Params, request: XMLHttpRequest, callback: any): void {
639+
AutoComplete.prototype.ajax(params, request);
640+
}
641+
632642
destroy(params: Params): void {
633643
for (var event in params.$Listeners) {
634644
params.Input.removeEventListener(event, params.$Listeners[event]);

0 commit comments

Comments
 (0)