0 / 0 / 0
Регистрация: 05.11.2013
Сообщений: 2

Как остановить повторное выполнения события onclick

05.11.2013, 02:44. Показов 2510. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Срочно нужна помощь. На заключительной стадии сдачи проекта тестеры нашли один баг серьезный. Суть проблемы такова.
Страница изначально формируется через php, при этом через jquery прописываю обработчики событий, потом после определенных действия админа или пользователей сайта через сокеты информация обновляется и снова же для обновленной страницы прописываю те же обработчики событий через jquery (т.е. фактически дублирую, то что подгрузилось с php-страницей). Вот это первый момент - не пойму - зачем дублировать тот же код? Без него ничего работать не хочет, кроме тех данных которые были подгружены раньше или после ф5.
Вторая проблема, самая главная - у меня на клике (onclick) прописан обработчик - отправка через ajax данных и обработка их на серве, причем запись в базу происходит искл, если данных в ней таких, как пришли нет.
Все бы ничего, но кто-то дважды случайно кликнул и ушел идентичный запрос, дважды происходит запись - и вся система перестает работать.
Нагородил я тут много, возможно весь вопрос состоит только в том как оставить повторное выполнение одного и того же события. Но я уже перепробовал все, что нашел.
Прошу вашего совета.
Вот что пробовал:
1. на стороне серва пауза длинной рендомайз.
2.на клиентской части - делал события асинхронными через setTimeout(...,0)
3. просто через setTimeout(...,Х) на клиентской стороне разной длинны паузы

Прошу заметить, что серв отсекает сразу попытку записать одну и ту же инфу, но она записывается, получается, что события происходят тупо одновременно, не знаю с каким интервалом, насколько я так понял браузер позволяет.
В мазиле такое происходит реже, в хроме даблклик почти всегда срабатывает. Вернее не дабл клик а именно 2-й клик (onclick) получается.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2013, 02:44
Ответы с готовыми решениями:

Как остановить обработчик события onclick?
Типо тест на знание английского.Есть словарь,нужно чтобы по клику выводилось следующее слово.Всё работает,но не знаю как остановить после...

Как остановить главный поток до момента выполнения определенного события?
Подскажите как остановить главный поток до момента выполнения определенного события?

Как остановить всплывание события
Добрый день, у меня вопрос. Есть форма, на форме элемент Image. У формы и у имджа есть обработчик события DoubleClick. При двойном щелчке...

2
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
05.11.2013, 05:04
В спецификации протокола HTTP был описан идемпотентный метод PUT, его и используйте. Еще я хочу уточнить - вы отправляете данные с помощью AJAX, а принимаете по средствам WebSocket???
0
0 / 0 / 0
Регистрация: 05.11.2013
Сообщений: 2
05.11.2013, 11:51  [ТС]
Отправляю ajax-ом, после обработки данных сервером получаю только сообщение о результате, а вот обновленные данные принимаю назад через сокет. У заказчика установлен nginx http push module
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2013, 11:51
Помогаю со студенческими работами здесь

Как создать обработчик события OnClick на C#
Всем привет! Подскажите, пожалуйста, такую вещь. Я создал кнопку <asp:Button ID="Button1" runat="server"...

Как различить события OnDblClick от OnClick
Проблема в том, что обработчик от события OnClick реагирует так же на событие от OnDblClick. Как разделить эти два обработчика разных...

Как завершить обработчик события OnClick у кнопки?
Как принудительно завершить обработчик события OnClick у кнопки?

Как добавить обработчик события IDocument2.onclick
Как добавить обработчик события IDocument2.onclick на C#

Как повешать на div простой обработчик события onClick
Привет всем. Я пытаюсь сделать так. Вот у меня есть блок div и внутри него текст: <body> <div id="my_block"...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru