Определите, когда пользователь введет

Нет. Если вы указываете новый номер порта, вы должны указывать имя хоста в одно и то же время.

Вы можете использовать URL-адрес схемы:

//192.168.0.120:9080

... но это настолько близко, насколько вы можете получить.


Рассмотрите возможность динамической генерации части имени хоста с помощью кода на стороне сервера.

13
задан jm. 1 September 2010 в 17:28
поделиться

6 ответов

  1. Когда клавиша нажата:
    1. Проверьте, существует ли существующий таймер - останавливают его, если существует тот
    2. запустите таймер.
  2. Когда таймер истечет, назовите метод сервера.
var searchTimeout;
document.getElementById('searchBox').onkeypress = function () {
    if (searchTimeout != undefined) clearTimeout(searchTimeout);
    searchTimeout = setTimeout(callServerScript, 250);
};
function callServerScript() {
    // your code here
}
25
ответ дан 1 December 2019 в 19:41
поделиться

Вы могли использовать вызовы для setTimeout это вызывает Вашу функцию сервера (с, возможно, 2-3 вторыми задержками) на событии нажатия клавиши. Как только akey нажимается, отмените предыдущее setTimeoutназовите и создайте новый.

Затем 2-3 секунды протекли без нажатий клавиш, событие сервера будет запущено.

6
ответ дан 1 December 2019 в 19:41
поделиться

Вот простой путь, который будет работать без jQuery:

<input type="text" id="TxtSearch" onchange="countDown=10;" />

<script type="text/javascript">

var countDown = 0;
function SearchTimerTick()
{
   if(countDown == 1)
   {
      StopTypingCommand();
      countDown = 0;
   }

   if(countDown > 0)
      countDown--;
}

window.setInterval(SearchTimerTick,1000);

</script>
2
ответ дан 1 December 2019 в 19:41
поделиться

Я не знаю много о JavaScript, но Вы могли использовать таймер (позволяет, говорят, что набор к 5 секундам), который сбрасывается на каждом событии изменения от Вашего поля ввода. Если пользователь прекращает вводить больше 5 секунд, таймер истекает и инициировал отправление.

Проблема с тем подходом состоит в том, что отправление инициировано на каждой паузе, например, если пользователь прекращает вводить к рассказу перерыв на кофе. Необходимо будет видеть, приемлемо ли это для пользователей.

0
ответ дан 1 December 2019 в 19:41
поделиться

Вы также, вероятно, хотите проверить длину строки на поле ввода, иначе рискнуть возвращать огромный набор результатов!

1
ответ дан 1 December 2019 в 19:41
поделиться

спасибо за Вашу обратную связь. Я реализовал эту часть кода, и кажется, что это делает задание (использующий jQuery):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<script src="jquery.js" type="text/javascript"></script>

<script type="text/javascript">
    var interval = 500;
    var filterValue = "";
    $(document).ready(function() {
        $(".txtSearch").bind("keypress", logKeyPress);
    });
    function logKeyPress() {
        var now = new Date().getTime();
        var lastTime = this._keyPressedAt || now;
        this._keyPressedAt = now;
        if (!this._monitoringSearch) {
            this._monitoringSearch = true;
            var input = this;
            window.setTimeout(
                function() {
                    search(input);
                }, 0);
        }
    }
    function search(input) {
        var now = new Date().getTime();
        var lastTime = input._keyPressedAt;
        if ((now - lastTime) > interval) {
            /*console.log(now);
            console.log(lastTime);
            console.log(now - lastTime);*/
            if (input.value != filterValue) {
                filterValue = input.value;
                //console.log("search!");
                alert("search!");
            }
            input._monitoringSearch = false;
        }
        else {
            window.setTimeout(
                function() {
                    search(input);
                }, 0);
        }
    }
</script>

0
ответ дан 1 December 2019 в 19:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: