Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/23: Рейтинг темы: голосов - 23, средняя оценка - 4.61
 Аватар для Draftpad
26 / 27 / 9
Регистрация: 12.10.2011
Сообщений: 83

Необходимо выставить паузу, перед выполнением функции

08.03.2013, 23:42. Показов 4645. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую форумчане.
Название темы не отображает всей сути вопроса, однако я и не знаю, как корректно выразить свою затею.

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

Пытался гуглить и выставлять интервалы всякими костылями, в итоге получалось примерно так:
delay 5000
Пишу A, через секунду пишу Б, ещё через секунду пишу В.
Спустя 5 секунд с момента, когда я начал писать А, начинаю последовательно выполняться запросы, в итоге идут запросы с "А", "Б", "В".

А мне нужно так:
delay 5000
Пишу A, через секунду пишу Б, ещё через секунду пишу В.
Спустя 5 секунд с момента, когда я закончил писать, отправляется 1 запрос "АБВ".

Прошу Вашей помощи, ибо данные в поле пишутся большие, и после написания 20+ символов начинается дикий засёр запросами, что меня вообще не устраивает.
В общем, выдвигайте свежие мысли, остальное вместе додумаем)

Сам код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
    $(document).ready(function(){   
 
        $('input[name=reason]').on("keyup paste cut IE9EventFix change", function (){ 
 
            var allreasons = document.getElementById('reason').value;
            $.ajax({
                type: 'POST',
                url: '../test.php',
                data: 'allreasons='+allreasons,
                success: function(data) {
                    $('#querydiv').html(data);
                }
            });
            
        });
    });
</script>
Давно на форуме не появлялся, поэтому, сильно не пинайте, если чего-то нарушил.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.03.2013, 23:42
Ответы с готовыми решениями:

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

Ожидание перед выполнением функции
Как сделать, чтобы прежде, чем выполнять функцию программа подождала определённое кол-во времени? if (money...

Задержка перед выполнением функции
Всем привет. У меня был скрипт, запускающий reload после завершения воспроизведения аудио window.onload = function(){ ...

5
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
09.03.2013, 00:10
Можно один раз запустить функцию - one.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
  <head>
    <title>Образец</title>
    
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />    
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    
<script language="javascript">
    jQuery(document).ready(function (){
         $('input[name=reason]').one("keyup paste cut IE9EventFix change", myfn);
    });
function myfn(){
setInterval(function(){
var allreasons=$('input[name=reason]').val();   
alert(allreasons);//ajax-запрос   
},5000) 
    
}   
    
</script>
<style>
 
</style>    
  </head>
  <body style="padding:180px;">
<input type="text" name='reason' />
 
  </body>
</html>
Можно bind - unbind

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script language="javascript">
    jQuery(document).ready(function (){
         $('input[name=reason]').bind("keyup paste cut IE9EventFix change", myfn);
    });
function myfn(){
$('input[name=reason]').unbind('keyup paste cut IE9EventFix change');   
var forstop=setInterval(function(){
var allreasons=$('input[name=reason]').val();
    
alert(allreasons);//ajax-запрос   
},5000) 
    
}   
    
</script>
После удачного завершения ajax запроса прекратить новые запросы clearInterval(forstop) и снова назначить bind
0
 Аватар для Draftpad
26 / 27 / 9
Регистрация: 12.10.2011
Сообщений: 83
09.03.2013, 00:20  [ТС]
Цитата Сообщение от Soldado Посмотреть сообщение
Можно один раз запустить функцию - one.
Если бы мне надо было её запустить 1 раз, я бы уж справился)

Цитата Сообщение от Soldado Посмотреть сообщение
Можно bind - unbind
"неможно", ибо костыль. Вне зависимости от того, пишу я, или не пишу в поле, запрос будет слаться каждые 5 секунд, при чем если написать в поле 100 символов и подождать, то начнется веселье в виде посыла одинаковых запросов, в кол-ве.. эдак 100 штук. Ну очистить интервалы я смогу, да вот только перед этим уше пошлется тонна запросов.

Так что давайте без костылей обойдемся, нужно адекватное решение, которые было не стыдно показать кодерам гугла xD
0
 Аватар для Draftpad
26 / 27 / 9
Регистрация: 12.10.2011
Сообщений: 83
12.03.2013, 21:36  [ТС]
Ап, неужели нету разбирающихся людей?
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
13.03.2013, 12:25
Допустим Вы введёте меньше чем за 5 секунд "АБВГ" и пойдёт именно такой запрос в БД, но он пойдёт всё равно через 5 секунд после ввода последнего символа. К тому же запросы "А","АБ" и "АБВ" будут пропущены, но они ведь могут быть значимыми.
Вот пример с полем, в котором для демонстрации, выводятся все запросы, которые будут отправлены ajax.
0
 Аватар для Draftpad
26 / 27 / 9
Регистрация: 12.10.2011
Сообщений: 83
22.04.2013, 21:31  [ТС]
Как я понял в примере тупо по таймеру идет запрос, а не после остановки ввода и таймаута.

Цитата Сообщение от Soldado Посмотреть сообщение
К тому же запросы "А","АБ" и "АБВ" будут пропущены, но они ведь могут быть значимыми.
А вот фигкушки) Бд игроков более чем с 20к учетных записей, необходим поиск по никам, и если начинать запросы по 3-ём символам, то порой можно найти и по 2 сотни совпадений, увы фантазия нынче у народа отсутствует.
В любом случае вопрсо уже давно решил, сделал почти как в примере, запросы по таймеру.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2013, 21:31
Помогаю со студенческими работами здесь

Перед выполнением задания необходимо создать в рабочей папке файл SIMP.FOR. Создать командный файл с именем _E
Перед выполнением задания необходимо создать в рабочей папке файл SIMP.FOR. Создать командный файл с именем _EXIST.BAT, выполняющий...

Условие перед выполнением следующего
Здравствуйте! Вот в чем проблема. Есть модальное окно код которого представлен ниже, в котором находятся share кнопки. &lt;div...

Таймер перед выполнением анимации
доброго времени суток всем! такая ситуация: есть анимация кот увеличивае картинку и срабатыват при наведении на картинку курсором. ...

значение переменной перед выполнением
На печать в результате выполнения фрагмента алгоритма было выведено число 104128. Значение переменной n перед выполением операторов было...

Задержка перед выполнением, ничего не получается
Помогите реализовать задержку перед выполнением одной функций, но так чтобы могли выполнятся другие функции. Sleep(); замораживает всю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru