LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

Как предотвратить множественный запуск кода?

Всем привет!

Ребят юзаю вот такой код:

var t = '';
    function gText(e) {
        t = (document.all) ? document.selection.createRange().text : document.getSelection().toString();
 
 
 
 
        if (t.length > 40) {
            $.ajax({
                url: '@Url.Action("SaveInfo", "Utils")',
                type: 'POST',
                cache: false,
                traditional: true,
                data: {
                    id: '@Model.Id',
                    title: '@Model.Title'
                }
            });
        } //  if (t.length >
 
    }
 
    document.onmouseup = gText;
    if (!document.all) document.captureEvents(Event.MOUSEUP);


если посетитель выделяет текст и отпускает мышку и если текста больше чем 40 смвл, то выполняется действие. Таким образом я фиксирую кто и что копирует на сайте. Все отлично, но иногда скрипт отрабатывает два то и три раза подряд... я сам пробовал... он как то через раз работает, один раз как положено сработал, второй раз почему то два раза.... Помогите пжлста его улучшить, а то дублей дофига
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Это зависит от сложности приложения. В самом простом варианте достаточно проверять какой-нибудь флаг. В вашем случае, вероятно, еще сравнивать предыдущий выбранный текст с текущим. Как-то так, инфа в консоли.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimka-dooz
@dimka-dooz
front-end разработчик)
Нужна задержка, что бы не выполнялось несколько событий подряд. Тут нужно поднять вопрос интерфейса. Возможно сделать отправку данных не моментально, как то ее скрыть, сделать более ленивой. Возможно какое то кастомное событие запиликать. Вопрос состояний приложений достаточно сложный.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект