За последние 24 часа нас посетили 61069 программистов и 1767 роботов. Сейчас ищут 1013 программистов ...

Помогите, пожалуйста. Отправка сообщения только раз в 3 сек.

Тема в разделе "JavaScript и AJAX", создана пользователем troodi, 13 ноя 2014.

  1. troodi

    troodi Новичок

    С нами с:
    13 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Как можно сделать чтобы сообщение можно было отправить только раз в 3 секунды в инпуте?
    Думаю посредством JS, но пока не могу придумать как. Вроде система такая: отправил сообщение, инпут стал неизменяемым на 3 секунды и потом опять можно отправить сообщение.
    Сорри еще нубок.
     
  2. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Заблокируй input и разблокируй через 3 секунды через setTimeout
     
  3. troodi

    troodi Новичок

    С нами с:
    13 ноя 2014
    Сообщения:
    2
    Симпатии:
    0
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Хм, а можно пример? А то с JS вообще не работал :)
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    а ты попытайся
     
  5. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Это не чем не задержит к примеру бота, у которого нет js.
    Форму нужно полноценно делать на js, чтобы не было всяких тупых поведений на сайте.
    Вообще, после отправки сообщения, нужно смотреть дату добавления и прибавить 3 секунды, а потом сравнить с текущей датой.
     
  6. torrius

    torrius Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    35
    Симпатии:
    1
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Код (Text):
    1.  
    2. <head>
    3.     <script type="text/javascript">
    4.         function submitFormAjax(ths_form){
    5.             /*
    6.                 здесь код отправки формы ths_form через AJAX
    7.             */
    8.             alert('Форма с name = "' + ths_form.name + '" отправлена!');
    9.         }
    10.         function lockForm(ths_form){
    11.             if(typeof(lock) === 'undefined') this.lock = true;
    12.             if(!lock) return false;
    13.             lock = false;
    14.             setTimeout('lock = true',3000);
    15.             submitFormAjax(ths_form);
    16.         }
    17.     </script>
    18. </head>
    19. <body>
    20.     <form name="login">
    21.         <input type="text" />
    22.         <input type="button" onclick="lockForm(this.form)" value="submit" />
    23.     </form>
    24. </body>
    Форму надо делать на ajax, иначе смысла нет.
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    знающий человек будет по завершению отправки одной формы слать следующую. соответственно без блокировки на стороне сервера - защита формы имеет смысл только от неопытных школьников.
     
  8. torrius

    torrius Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    35
    Симпатии:
    1
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Совершенно согласен.
    Если только, может быть, создавать и саму форму динамически с помощью js?
    Бот, зайдя на сайт, вообще не увидит ни какой формы. Плюсом можно добавить скрытую форму для приманки ботов, пусть балуются с ней))
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

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

    torrius Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    35
    Симпатии:
    1
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Опять соглашусь. Особенно всякие: фильтры, валидаторы, "защиты" от ботов - это лишь в дополнение к скриптам на сервере, дабы, по возможности, не дергать оный лишний раз, и только.
    Тоже верно. Фаерфокс потому и убрал в общедоступных настройках пункт отключения жс. Наверное, чтобы сделать этих "бедных" немного счастливее ;))
    У меня в фф стоит NoScript. Прикольно наблюдать, что происходит на большинстве сайтов с отключенным жс )))
    Мощности современных процессоров позволяют пренебречь нагрузкой от жс. Теперь это в прошлом. Современные браузеры неплохо защищают от вредительских скриптов.
    Можно смело утверждать: html+css+js - это как единое целое для полноценной работы клиента.
    И создание динамической формы скажется лишь на единицах особо "бедных", кои до сих пор сидят на древних "ишаках", и которыми я бы пренебрег ))
    Хотя, может и я чего не догоняю, с радостью поправлюсь, вашими доводами ))
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    я например часто из под рыси сижу в интернетах. очень обидно когда сайт написан исключительно под пользователей с гуей и жээсами. обидно что мною пренебрегает разработчик считающий мой браузер ишаком =)
     
  12. torrius

    torrius Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    35
    Симпатии:
    1
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    )))) думаю, у разработчиков ни чего личного к вам нет ))
     
  13. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Нах его выключать? Это говорит уже о том, что это не человек и он не может полноценно пользоваться сайтом.
    Я могу сказать одно, идиот он твой человек который без js собрался по сайтам лазать.
    Идиот с большой буквы. Почему? Потому, что отключать js не надо, а собственно если он у него отключен то и шлем на хер.
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    вот ты пришел просто громко пёрнуть в этой теме? чувак, ну у тебя плохо с кругозором, да... бывают случаи в жизни, представляешь? почему вдруг сразу шлем на хер и идиот с большой буквы? ты сейчас тысячи людей оскорбил пытаясь за меня зацепиться. маленький диванный аналитик... чо с тя взять. в зебру.
     
  15. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Re: Помогите, пожалуйста. Отправка сообщения только раз в 3

    Тряси губой, у тебя это не плохо получается. ;)
    Ну, а я этим временем буду спать спокойно и буду уверен, " что боты, сканеры " идут мимо и не смогут в случае чего навредить мне ;)
    А если человек нормальный, он не будет отключать js.
    А тупой, подавно, потому что кроме как нажать на значок браузера и ввести фразу или адрес сайта он не сможет сделать.
    А идиот будет страдать херней и отключать всякие js и прочие механизмы, потому, что " Идиот с большой буквы ", по этому шлем на хер (хочет не быть идиотом?пусть у себя маится там, тестится, а к другим не ходит).

    Всем, кто нормальный:
    Ставьте популярные браузеры.
    Делайте " формы и прочие красивые плюшки " - на стороне клиента, то есть браузера с включенным js, если он будет отключен, просто попросить его включить, иначе он не сможет полноценно пользоваться сайтом, без клиентской стороны.
    Как хотите делайте юзабильность и визуализацию, а на сервере сделайте корректную проверку запроса, ни в коем случае не доверяйте клиентосу.