JSFiddle - React, Tailwind, and code Playground

by guest271314

HTML

<input type="text" value="" class="review_autocomplete" />

JavaScript

var count = {
        "start": 0,
        "complete": 0,
        "timeout" : 2
    };
    $('.review_autocomplete')
    .focus()
    .on("keyup", function (e) {
        elem = $(this);
        window.clearInterval(window.s);
        window.s = null;
        var time = function () {
            var t = Math.round($.now() / 1000);
            count.start = t;
            count.complete = t + count.timeout;
        };
        time();
        var request_autocomplete = function () {
    
            return jQuery.ajax({
                url: "/echo/json/",
                type: "POST",
                dataType: "json",
                data: {
                    json: JSON.stringify({
                        "data": elem.val()
                    })
                }
                // DO something
            }).done(function (data) {
                window.clearInterval(s);
                console.log("request complete", data);
                $("body").append("<br /><em>" + data.data + "</em>");
                elem.val("");
                count.start = count.complete = 0;
                console.log(count.start, count.complete);
            });
        };
        window.s = setInterval(function () {
            if (Math.round($.now() / 1000) > count.complete) {
                request_autocomplete();
                console.log("requesting data");
            };
        }, 1000);
    
    });