Jump to content
  • 0

Реализовать задержку выполнения


tt48
 Share

Question

Доброго времени суток.

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

Суть в том, что через AJAX подгружается информация,

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

Народ где-т писал, что надо использовать setTimeout, но решения там приведено не было,

а сам совсем не понимаю, как реализовать задачу через него.

С уважением, Олег.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

<script type="text/javascript">
var t;
function send()
{
clearTimeout(t);
t=setTimeout(function(){alert('Two seconds passed');}, 2000);
}
</script>

<button onclick="send();">Press me</button>

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

Link to comment
Share on other sites

  • 0
Есть мнение, что если потребовался sleep, то что-то прогнило в логике или на сервере или на клиенте...

Почему же? Это нормальная практика, особенно для аякса. Ну, например, у меня была така задача: есть каталог товаров (тысяч 20 позиций с картинками), и нужно как-то из этого всего хозяйства выбирать товары для обзора. Как искать товар? По айдишнику? Так их фиг запомнишь. Ищем по названию. Когда набираем название, то после onkeyup ставим задержку в 2 секунды и, если ничего больше не введено, то аяксом подгружаем список товаров, которые называются LIKE '%введённая строка%'. А если бы на каждый onkeyup сразу бы начинали загружать, то сервер бы упал очень быстро. Так что твои претензии необоснованны.

Link to comment
Share on other sites

  • 0

Спасибо большое.

Еще вопрос теоретического плана -

если ставить такую штуку на вертикальное hover slide меню,

то при скоростном проведении по его пунктам+ оставить мышку на одном из пунктов

- выходит так, что часть пунктов не прячутся...

http://www.beavers-net.narod.ru/primers/menu.html

С уважением, Олег.

Link to comment
Share on other sites

  • 0
Какой-то ховер... Не знаком я с таким кунг-фу, если честно... Я бы сделал $('.slide_menu > li').mouseover и $('.slide_menu > li').mouseout

Если верить книжке - оно одно и тоже..

по крайней мере, косяки остались теже.. эхх..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy