Comments 183
и еще процентов 80% жмут повторно если сервер не отвечает в течении секунд 5…
а это кстати помогает.
потому что на второй запрос может ответить другой сервер, который будет более быстрым.
потому что на второй запрос может ответить другой сервер, который будет более быстрым.
Из истории:
«Мотороллер не мой, я просто разместил объяву»
да, только потом оба сервера в итоге вернут какой-то ответ.
чаще из-за траблов провайдера ответ теряется.
Первый не вернет, если запрос повторить а первый еще не закончился
далеко не факт
Факт, браузер отменяет запросы при переходе на ссылку или повторном запросе этой же страницы, то что там сервер уже будет делать его не волнует. Сервер не вернет запрос, некуда будет возвращать.
Может и не вернёт, но внутреннее-то состояние своё может и изменить. Проще говоря, покупку не покажет (вы не дождались показа), но оформит (кликнули).
Нет, я знаю, что GET-запрос не должен менять внутреннее состояние веб-приложения… Но кто гарантирует, что в данном конкретном случае всё сделано правильно?
Нет, я знаю, что GET-запрос не должен менять внутреннее состояние веб-приложения… Но кто гарантирует, что в данном конкретном случае всё сделано правильно?
сервер конкурентов?
как там было — если клиент не дозвонился до тебя, значит он дозвонится до твоих конкурентов…
как там было — если клиент не дозвонился до тебя, значит он дозвонится до твоих конкурентов…
а еще через 5-10 секунд начинается паника и количество кликов становится около 10…
часто такое наблюдаю у операторов call-центра =)
часто такое наблюдаю у операторов call-центра =)
> процентов 80%
Процентов 80 процентов 0_о
То есть все 160? В кораблях НЛО тоже повторно жмут если корабль секунды две не отвечает или завис?
Процентов 80 процентов 0_о
То есть все 160? В кораблях НЛО тоже повторно жмут если корабль секунды две не отвечает или завис?
А как решали проблему, интересно? Первое, что в голову приходит — disable'ить ссылку на секунду…
На фронтенде — да. На бекенде немного сложней
Решение зависит от конкретной задачи.
Для некоторых ситуаций и фронтэнд фиксов хватит. Вы написали «у которых дублировалась информация о заказе». Исходя из этой фразы предположить вариант выхода из конкретной ситуации довольно сложно.
Проблема даблклика присутствует в веб-приложениях повсеместно, это не секрет, а пример можно было бы и более развернутый написать, для наглядности.
Для некоторых ситуаций и фронтэнд фиксов хватит. Вы написали «у которых дублировалась информация о заказе». Исходя из этой фразы предположить вариант выхода из конкретной ситуации довольно сложно.
Проблема даблклика присутствует в веб-приложениях повсеместно, это не секрет, а пример можно было бы и более развернутый написать, для наглядности.
«Внимание. У вас уже имеется данный товар в корзине, хотите добавить еще один — такой же?» «Да/Нет» и все… всего лишь проверку одинаковых товаров сделать.
Такое решение тоже годиться не под каждую задачу.
Лишние выскакивающие уведомления могут быть на внутрикорпоративных системах, где лучше помозолить зрительные рецепторы юзеру для достижения производительности его труда :) А на «массмаркет» площадках в данном вопросе прежде всего юзерфрендли, отсев лишних событий — забота администрации сайта (в конечном итоге разработчиков), а не клиента.
Лишние выскакивающие уведомления могут быть на внутрикорпоративных системах, где лучше помозолить зрительные рецепторы юзеру для достижения производительности его труда :) А на «массмаркет» площадках в данном вопросе прежде всего юзерфрендли, отсев лишних событий — забота администрации сайта (в конечном итоге разработчиков), а не клиента.
И вот юзер соображает как этого, ничего не было, а тут уже второй, решает, что магазин глючный и сваливает к конкурентам
Ога или когда смотрит на свой чек и видит там двойную цену и думает что его накололи и даже не предупредили… и сваливает к конкурентам…
Я написал лишь как пример…
Я написал лишь как пример…
Текст кстати может быть иной, например: «Скорее всего, вы случайно нажали на ссылку два раза, и товар добавился в вашу корзину, хотите ли добавить еще один такой же?»
А почему это нужно решать на бакенде? Проблема-то вроде бы чисто фронтэндовая.
На фронтенде нет javascript — как решите?
Можно отправлять уникальный идентификатор клика так, что бы два подряд идущих клика шли с одним и тем же идентификатором.
Как именно сделать такое — зависит от конкретной системы.
Как именно сделать такое — зависит от конкретной системы.
видел решение, когда ссылка/кнопка/картинка пряталась, а на её месте появлялся или текст «Please wait...» или какая-то анимированная гифка
Что в случае обрыва связи/плохого канала/падения сервера выливается в геморрой с обновлением страницы
Для этого есть каллбак функции которые реагируют на ошибки.
Ну, мы-то это знаем :) А вот на практике…
и которые порой не вызываются, потому что сервер уже пятую минуту думает или соединение залипло.
timeout
Ну да, решение — вручную реализовывать таймаут.
пример на jQuery:
Может написать код для других библиотек?
var params = { data: {blah-blah}, onsuccess: successFunction, onerror: errorFunction, timeout: 100 // 100 ms // complete(XMLHttpRequest, textStatus) - еще такая есть, где textStatus = [ "success", "notmodified", "error", "timeout", "parsererror"] }; $.get( url, params )
Может написать код для других библиотек?
Как насчет ситуации, когда timeout не вызывается? Например, потому что таймаут — вообще понятие больше философское, чем сугубо техническое. Например, есть таймаут на коннект, есть таймаут на получение очередной порции данных и т.п. А для пользователя таймаут — это полное завершение всех действий в броузере и однозначный визуальный фидбек по нему.
С технческой т.з. таймаут еще не наступил, а пользователь уже ерзает по столу.
С технческой т.з. таймаут еще не наступил, а пользователь уже ерзает по столу.
А если метеорит упадет и земле придет конец? Таймаут для того чтоб завершить текущий запрос при «гипотетический» ошибке и показать кнопочку пользователю чтоб он мог сделать еще один.
Таймаут — это по сути ответ был на камент dmitriid выше. Подождал немного, если ответа нет (когда данные начинают качаться тоже можно определить), то даем возможность повторить попытку.
Если стоит упор именно на качество приложения, то это все реализовать можно.
Таймаут — это по сути ответ был на камент dmitriid выше. Подождал немного, если ответа нет (когда данные начинают качаться тоже можно определить), то даем возможность повторить попытку.
Если стоит упор именно на качество приложения, то это все реализовать можно.
ReadyState Value Description
0 Represents an «uninitialized» state in which an XMLHttpRequest object has been created, but not initialized.
1 Represents a «sent» state in which code has called the XMLHttpRequest open() method and the XMLHttpRequest is ready to send a request to the server.
2 Represents a «sent» state in which a request has been sent to the server with the send() method, but a response has not yet been received.
3 Represents a «receiving» state in which the HTTP response headers have been received, but message body has not yet been completely received.
4 Represents a «loaded» state in which the response has been completely received.
Это на всякий случай, если вдруг спросите как определить глючит запрос или данные долго качаются
0 Represents an «uninitialized» state in which an XMLHttpRequest object has been created, but not initialized.
1 Represents a «sent» state in which code has called the XMLHttpRequest open() method and the XMLHttpRequest is ready to send a request to the server.
2 Represents a «sent» state in which a request has been sent to the server with the send() method, but a response has not yet been received.
3 Represents a «receiving» state in which the HTTP response headers have been received, but message body has not yet been completely received.
4 Represents a «loaded» state in which the response has been completely received.
Это на всякий случай, если вдруг спросите как определить глючит запрос или данные долго качаются
Спасибо, Кэп.
На самом деле имеет смысл обернуть ajax запрос в еще один setTimeout который ждет какого-либо завершения запроса.
На самом деле имеет смысл обернуть ajax запрос в еще один setTimeout который ждет какого-либо завершения запроса.
На самом деле не стоит, в библиотеках есть все инструменты для того чтоб следить за запросом.
Зависит от. Если есть, то гуд. Если нет, то вот тогда нужна подобная оберточка.
Если запрос прошел быстро но данные уже качаются, и их много, Ваш setTimeout все испортит, и всегда будет портить, при каждом новом запросе. Он просто все испортит.
Да, хороший момент. Такие еще повсплывают, поэтому делать таймауты надо с умом. А еще лучше, действительно, довериться библиотеке.
Дело в том что Ваше ироничное «Спасибо, Кэп» прозвучало как раз на реальном решении любой проблемы с мониторингом состояния запроса. Вместо того чтоб реально отслеживать состояние запроса, Вы предлагаете тупо отсчитать некое количество времени и разорвать соединение, если запрос не выполнился.
При мониторинге можно менять сообщения, чтоб пользователю было понятно что происходит:
ReadyState == 2 // подождите максимум Х секунд, ждем ответа сервера…
ReadyState == 3 // сервер ответил, получаем данные…
ReadyState == 4 // получите распишитесь
Видя что сообщения меняются пользователю будет понятно что происходит в данный момент, и ерзать он уже не будет.
Как в гугле: Данные все еще обрабатываются…
При мониторинге можно менять сообщения, чтоб пользователю было понятно что происходит:
ReadyState == 2 // подождите максимум Х секунд, ждем ответа сервера…
ReadyState == 3 // сервер ответил, получаем данные…
ReadyState == 4 // получите распишитесь
Видя что сообщения меняются пользователю будет понятно что происходит в данный момент, и ерзать он уже не будет.
Как в гугле: Данные все еще обрабатываются…
Особенно сильно это раздражает, когда после клика нажал стоп и смотришь как баран на старую страницу.
Решение проблемы: моментальное информирование блондинки баннером «Спасибо за выбор, Ваш клик обрабатывается»
Ссылка — для перехода по адресу
Кнопка — для выполнения действия
Выполнение действия (оформление заказа) через нажатие на ссылку — это ужасно.
Кнопка — для выполнения действия
Выполнение действия (оформление заказа) через нажатие на ссылку — это ужасно.
Согласен. Хорошо, что у нас не так :)
Как же не так, раз топик именно про дваклик по ссылке? Надо чтобы кнопки выглядели как кнопки операционной системы и тогда двойных кликов будет меньше.
Но защищаться, конечно, все равно надо — проблема-то давно известная. И disable кпноки на клиенте и отключение отправки запроса если такой же уже отправлен, а ответ не получен в js, ну и на бэкенде как-нибудь.
Но защищаться, конечно, все равно надо — проблема-то давно известная. И disable кпноки на клиенте и отключение отправки запроса если такой же уже отправлен, а ответ не получен в js, ну и на бэкенде как-нибудь.
Как раз таки наоборот. Даблклик присущ больше для кнопок, а вот про ссылки слышу впервые.
Э… с чего бы? Вы меня удивили. Хотя бы кратко можете изложить механизм образования у пользователя рефлекса типа «дабл-клик на кнопке, одинарный на ссылке»?
Во всех ОС кнопки срабатывают по одинарному щелчку. В винде некоторые объекты (которые заведомо не кнопки) срабатывают по двойному. В линуксе почти все — по одинарному.
Соответственно, можно понять образование рефлекса «двойной щелчок по ссылке» — это ведь не кнопка, два раза надо. Но по кнопке-то откуда?
Во всех ОС кнопки срабатывают по одинарному щелчку. В винде некоторые объекты (которые заведомо не кнопки) срабатывают по двойному. В линуксе почти все — по одинарному.
Соответственно, можно понять образование рефлекса «двойной щелчок по ссылке» — это ведь не кнопка, два раза надо. Но по кнопке-то откуда?
Не могу сослаться на конкретное исследование, но именно такие данные приводит Кристофер Шмитт.
Вообще-то в Win98 появился ActiveDesktop, в котором была возможность (чуть ли не по умолчанию), свести все клики в системе к одинарным, а GNOME/KDE ведут себя из коробки смешанным образом (тоже, разумеется, с возможностью настройки).
Кроме того, как ни старались все игроки — свести в голове пользователей понятия «компьютер» и «интернет» к единому «информационному пространству» пока никому не удалось. Возможно, GoogleOS удастся, хотя верится с трудом. Потому аналогии с ОС — немного надуманы.
Кроме того, как ни старались все игроки — свести в голове пользователей понятия «компьютер» и «интернет» к единому «информационному пространству» пока никому не удалось. Возможно, GoogleOS удастся, хотя верится с трудом. Потому аналогии с ОС — немного надуманы.
Ага, но gmail с этим долго был несогласен
В общем случае да, но на самом деле совсем не всегда так
а на сообщение Вы отвечали, кликая по кнопке или ссылке? ;)
кнопке
как раз таки по кнопке. «написать» называется.
а ссылка «ответить» — это именно ссылка к форме…
а ссылка «ответить» — это именно ссылка к форме…
еще нужно что бы после нажатия кнопка сразу пропадала 8-) тогда не будет проблем с даблкликом
Только надо что бы через некий разумный таймаут она появлялась снова, а то коннект заглючит, захочешь действительно еще раз отправить форму а сабмит заблокирован. Я за такое один магазин был убить готов, там форма заказа на А4 страницу и кнопка заблокировалась ничего не отправив и через 5 минут
Хорошо был фаербаг под рукой, разблокировал сам себе, а то бы я второй раз заполнять не стал не смотря на заказ. Просто из принципа
Хорошо был фаербаг под рукой, разблокировал сам себе, а то бы я второй раз заполнять не стал не смотря на заказ. Просто из принципа
Верно!
или другая формулировка (потому как переход по адресу тоже в какой то степени действие):
Ссылка — для получения контента
Кнопка — для отправки контента
(и тогда даже в gmail все встает на свои места)
или другая формулировка (потому как переход по адресу тоже в какой то степени действие):
Ссылка — для получения контента
Кнопка — для отправки контента
(и тогда даже в gmail все встает на свои места)
Ссылки (и иногда кнопки) для запросов не изменяющих состояние приложения (грубо говоря, не пишущих в БД) — GET запросов прежде всего
Для запросов изменяющих — POST, как правило, хотя ими зачастую эмулируют PUT и DELETE — имхо, только кнопки
Для запросов изменяющих — POST, как правило, хотя ими зачастую эмулируют PUT и DELETE — имхо, только кнопки
Вы прям почти цитируете RFC 2616 :D
Всё уже украдено продумано до нас :) И продумано, похоже, не просто так.
Зачем изменять стандартное поведение контролов, а потом жаловаться, что юзеры ими неправильно пользуются, особенно, если это неправильное использование чревато такими проблемами. Ладно кнопку «удалить» и, тем более, «изменить»/«сохранить» сделать в виде ссылки, но «отправить»… :-/
Зачем изменять стандартное поведение контролов, а потом жаловаться, что юзеры ими неправильно пользуются, особенно, если это неправильное использование чревато такими проблемами. Ладно кнопку «удалить» и, тем более, «изменить»/«сохранить» сделать в виде ссылки, но «отправить»… :-/
Тут вопрос не «зачем», а «почему». Потому, что хотя интуитивно и понимается, какие виджеты зачем нужны, это не вербализовано и чётких правил применения нет. И иногда всплывают разные случаи, когда интуиция подводит.
А чтобы вербализовать, нужно читать best practices, хотя бы и в форме RFC. (Standarts Track, как упомянутый RFC 2616 — это именно описание «сложившейся ситуации», т.е. как раз те самые best practices.)
А чтобы вербализовать, нужно читать best practices, хотя бы и в форме RFC. (Standarts Track, как упомянутый RFC 2616 — это именно описание «сложившейся ситуации», т.е. как раз те самые best practices.)
Тем не менее, сам часто наблюдал, как страницы открываются двойным щелчком. Документы, размещенные на сайте — тоже самое.
Думаю, дело в строгой ассоциации — открытие объекта при помощи двойного щелчка. А ссылка это или значок — никто уже не заморачивается.
Думаю, дело в строгой ассоциации — открытие объекта при помощи двойного щелчка. А ссылка это или значок — никто уже не заморачивается.
Блин, вот откуда повторные попытки оплат в нашем биллинге! А я думал все нажимают кнопку «назад» и отправляют форму еще раз :)
Пойду сделаю disabled после первого клика…
Пойду сделаю disabled после первого клика…
корректнее использовать токен — который генерится и проверяется на сервере — для проверки повторного сабмита
Disabled не лучшее решение, что будет делать богатенький и недалекий буратина, если после клика и блокировки кнопки/ссылки ничего не будет происходить? Обновить страницу и опять заполнить километровую форму?
А еще надо использовать механизмы защиты от повторного сабмита(duplicate submission) — тогда заказы дублироваться не будут…
У меня все знакомые старше 40 лет по привычке кликают по ссылкам два раза, привычка осталась от Windows с дабл-кликом по ярлыкам.
Простой фразой «в Windows клик два раза, а в Интернете — один раз» они понемногу переучиваются )
Простой фразой «в Windows клик два раза, а в Интернете — один раз» они понемногу переучиваются )
на самом деле очень часто наблюдал как люди старшего поколения кликают 2 раза по ссылкам и по кнопкам вообще везде. Пытаюсь олбъяснить что в инете всегда на кликать один раз, так ведь иногда встречаются веб-приложения таки требующие двойного щелчка что ещё больше все запутывает.
вот поставите им венду 7 и они вообще запутаются где и сколько надо кликать…
По этой причине ненавижу пользоваться большинством веб-приложений (к гуглоридеру просто привык). У них интерфейс всегда другой. И здесь другой, и там другой, постоянно другой. Бля.
Мой батя кликает по ссылкам два раза. Старая привычка со времен Windows 3.11 :)
Я думаю в России будет еще хуже =)
а есть ведь еще и маленький процент людей, которые «для надежности» делают triple-click
В винде всегда включаю одинарный клик, жена привыкла и перестала даблкликать в интернетах
Ну да. Жаль в браузере нет настройки «Открывать ссыкли даблкликом» :)
ИМХО не удобно в винде с одинарным кликом, а если надо одну папку или файл выделить?
а в линухах он и так по умолчанию работает — по крайней мере, в kde :D
А еще 15% пользователей водят мышкой во все стороны во время загрузки системы мотивируя тем что так быстрее загружается.
ага, если есть анимация — людям кажется что процесс идет быстрее ))
поэтому мышкой и дергают ))
поэтому мышкой и дергают ))
Я думаю этот процент намного выше, и растет пропорционально срочности выполнения какой-либо операции.
15!? Думаю, не меньше 60%, особенно, если медленный интернет!
Сам так делаю, особенно, когда кому-то пытаюсь что-то по-быстрому показать и комп начинает тупить… вот и крутишь по кругу мышкой :)
Сам так делаю, особенно, когда кому-то пытаюсь что-то по-быстрому показать и комп начинает тупить… вот и крутишь по кругу мышкой :)
Чем-то же надо заняться пока грузится, пока грузится то.
Ну, моей винде с меееедленным и старым антивирусом это правда помогало загружаться (уж не знаю, почему...))
Может антивирь включался в режиме бездействия компьютера?
Спасибо, помогло!!!
некоторые пользователи для быстроты любят зажать Enter))
UFO just landed and posted this here
UFO just landed and posted this here
Я тоже дергаю, если мышка дергается, значит на самом деле что-то грузится, а не висит.
А если на кнопку лифта нажимать тык-тык-тык-тык-тык то быстрее приедет
Микрософт же приучил
Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.
Method 2: Move Your Mouse Pointer
If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.
У меня знакомый тоже водит мишкой чтобы быстрее грузилось. При этом показывал мне тесты как грузиться без мышки и с мышкой (да, есть даже такие тесты). Сравнивал и говорит реально быстрее грузиться. В итоге сошлись на варианте что при вождении мышей его настолько это увлекает что он начинает и не замечать как проходи время. Т.е. вроде только начал водить а уже и загрузилось.
Как в старом анекдоте «Зашел на 5 минут вконтакт а смотрю уже и час прошел»
Как в старом анекдоте «Зашел на 5 минут вконтакт а смотрю уже и час прошел»
Я так проверяю не завис ли комп вообще :)
Напомнило — во времена оны была у нас полусамопальная локальная сеть из десятка компьютеров ДВК-1 (бездисковые станции), концентратора Электроника 60 и сервера СМ-3. Индикатор активности сети в целях отладки и последующего ремонта оборудования был совмещён со светодиодом питания этих ДВКашек. Мигает — идут пакеты, сеть встала — горит непрерывно. От чего она вставала не помню, но, со временем, это дело рассасывалось и начинало работать снова (или не рассасывалось, тогда в ход шла разная тяжёлая артилерия). Кем-то (может и мною, не помню уже) в сообщество польозователей была вброшена идея, что когда сеть стоит колом, можно пощёлкать по светодиодику ногтем (лёгкие щелбаны такие) и это якобы поможет пакетикам рассосаться :). Когда сеть тормозила это был цирк с конями — десять человек сидят и сосредоточенно щёлкают ногтиком по светодиодику с частотой примерно в один герц :). Половина понимала, что это полная хрень, но тоже щёлкали — а фигли, заняться больше нечем, а так — вдруг да поможет :). И ведь вправду — пощёлкал, пощёлкал, оно и заработало. Несомненно щелобаны помогли! :)
Пару дней назад словил баг: Win7, Adobe Media Encoder CS5 не хотел перекодировать видео, если по нему не елозил указатель мышки)
Пришлось минут 5 сидеть, крутить мышку)
Пришлось минут 5 сидеть, крутить мышку)
Шикарный баг!
Обожаю такие простые и логичные объяснения загадочных проблем =)
Обожаю такие простые и логичные объяснения загадочных проблем =)
Я понимаю, что топик не об этом, но вообще-то если двойное нажатие приводит к каким-то проблемам, это все же явный баг и вина программистов, то что они изначально не предусмотрели подобную проблему явно говорит об их некомпетентности.
Это баг и вина разработчиков ТЗ и тестировщиков, прежде всего разработчиков ТЗ на UI и тестировщиков UI. Если мне, как сервер-сайд программисту, дают ТЗ «при получение запроса на такой-то урл с такими-то данными занести данные в БД» то в чём моя вина, что в короткий момент времени пришло два запроса с одинаковыми данными и сервер их обработал? Ещё в ТЗ и напишут «не должно быть не сохранённых в БД запросов, если они дошли-таки до приложения». А если, как клиент-сайд программисту, говорят «при нажатии ссылки должна отправляться форма», то в чём моя вина, что при каждом нажатии она каждый раз отправляется?
Это простительно не программисту, а junior-coderу, в описанной ситуации программист все равно виноват, тот который писал ТЗ для младшего. А если вы считаете, что подобные моменты в ТЗ должен заказчик прописывать, то я это даже комментировать не хочу. На два коммента ниже kai, тоже очень правильно отписался.
Я считаю, что при получении ТЗ написанного заказчиком надо у него уточнить все моменты, которые он по каким-то причинам упустил, а уж если пишешь ТЗ для себя ТЗ от имени заказчика, то явно там обозначить, хотя бы для того, чтобы иметь обоснование на увеличение срока разработки/оплату. По сути виноват менеджер проекта :) — не уследил, не предусмотрел, не отреагировал, не создал условий, чтобы команда сама отреагировала. И даже если он выполняет ещё и обязанности программиста, и вообще все остальные обязанности в команде, включая уборщицы и повара, то все равно виноват как менеджер, а не как программист :D
Такие моменты должны программисты знать, а не менеджер. Я согласен еще этого главного виноватого назвать старшим программистом или архитектором ПО, но никак не менеджером.
В моём понимании в проекте главный менеджер, он рулит (должен рулить) всеми процессами в команде, в том числе и привлечением старших программистов, архитекторов ПО и т. п., и он же отвечает за проект. Если менеджер ничего не знает о «fool protection» и не смог найти архитектора, который знает, то разве виноват архитектор? Другое дело, если менеджер знает, архитектор тоже знает, но забыл упомянуть это в ТЗ кодерам и тестировщикам или удостовериться, что кодеры и тестировщики тоже знают и не забудут — кто забыл тот и виноват. Но тут же явно иная ситуация — никто даже предположить не мог такой сценарий поведения пользователя
«никто даже предположить не мог такой сценарий поведения пользователя» — это и есть некомпетентность, о которой я говорил. Приличный веб-разработчик знал бы, что любой пользовательский ввод надо проверять, а случай с повторной посылкой данных из формы борется за первое место по популярности с скл-иньекциями и спец. символами в теле строк.
UFO just landed and posted this here
Надо разобраться почему ошибка возникла, чтобы в будущем их не допускать. Например в следующий раз программист будет ждать ТЗ с указанием «предотвратить возможность даблклика на стороне клиента, а если не предотвратили, то корректно её обработать на стороне сервера», а в ТЗ это не включат потому что подумают «ну, после того случая, сам додумается»
Маджента в IE иногда может дублировать продукты при разметке, нормально работающей в других браузерах. На Мадженто-форуме есть пара обсуждений на эту тему:
www.magentocommerce.com/boards/viewthread/28366/P0/
www.magentocommerce.com/boards/viewthread/3374/
www.magentocommerce.com/boards/viewthread/28366/P0/
www.magentocommerce.com/boards/viewthread/3374/
Enterprise, Double Click, отсутствие id у процедуры заказа — жесть. Ребят, это же азы.
А зачем писать целый топик? достачно посадить маму или папу за компьютер =) до этого показав, что значек «E» открывается, если нажать два раза…
Вывод у них такой: чтобы что-то открыть надо нажать два раза!
Вывод у них такой: чтобы что-то открыть надо нажать два раза!
Вот наверное поэтому и надо проводить тестирование с реальными юзерами. Я часто встречал рекомендацию встраивать в формы токены, но только после этого топика понял почему это нужно.
Насчет времени ожидания реакции системы. Я помню вот эти цифры (кажется это по Норману, не уверен):
0.1 сек. время отклика интерфейса — навели курсор на ссылку — появилось подчеркивание, человек понимает что система работает.
1 сек — время отклика на действие — нажали на кнопку, кнопка нажалась, начал крутиться кружочек ожидания
10 сек — время концентрации пользователя на интерфейсе — если после 10 секунд кружочек крутится и ничего не происходит, то человек отвлекается от задания и начинает думать о чем-то другом.
Но дело в том, что двойной клик, это ведь одно действие для человека соотв. эти интервалы не особо имеют значения.
У меня вопрос к AlexKuk, скажите, а в вашем магазине как были оформлены эти линки? Вы не могли бы показать их скриншот? Также интересует, менялся ли курсор при наведении на ссылку на палец (pointer), или оставался стрелочкой?
Насчет времени ожидания реакции системы. Я помню вот эти цифры (кажется это по Норману, не уверен):
0.1 сек. время отклика интерфейса — навели курсор на ссылку — появилось подчеркивание, человек понимает что система работает.
1 сек — время отклика на действие — нажали на кнопку, кнопка нажалась, начал крутиться кружочек ожидания
10 сек — время концентрации пользователя на интерфейсе — если после 10 секунд кружочек крутится и ничего не происходит, то человек отвлекается от задания и начинает думать о чем-то другом.
Но дело в том, что двойной клик, это ведь одно действие для человека соотв. эти интервалы не особо имеют значения.
У меня вопрос к AlexKuk, скажите, а в вашем магазине как были оформлены эти линки? Вы не могли бы показать их скриншот? Также интересует, менялся ли курсор при наведении на ссылку на палец (pointer), или оставался стрелочкой?
прочитал, и самому теперь тянет 2 раза кликать(
Я знакомых учу так: если при наведении что-то происходит (обычно курсор меняет форму), то один раз. Не панацея конечно, но охват случаев большой. Хотя на кнопках не происходит подобного, и тоже нужно жать один раз, но люди не путаются, так как есть аналоги в оффлайн.
> Думаю, в России процент будет гораздо ниже, но не благодаря повальной компьютерной граммотности населения
Ну не знаю, у меня мама всегда на все 2 раза нажимает. Плотно проблемой не занимался, но сходу объяснить где нажимать один раз, а где – два, не удалось.
Ну не знаю, у меня мама всегда на все 2 раза нажимает. Плотно проблемой не занимался, но сходу объяснить где нажимать один раз, а где – два, не удалось.
Magento — стоит ли удивляться? у них страница обновляется через минуту-другую, можно и сто раз кликнуть.
Мы в одном проекте во всех формах на клик дисайблили кнопку. Правильно было бы её возвращать через некоторое время.
Мы в одном проекте во всех формах на клик дисайблили кнопку. Правильно было бы её возвращать через некоторое время.
«диссонанс между интерфейсом операционной системы и интерфейсом окна браузера»
А в KDE все делается одним кликом. =)
А в KDE все делается одним кликом. =)
UFO just landed and posted this here
У меня мама всегда даблклие использует. Когда я спрашивал почему, она ответила, что ей просто так удобней — везде нажимать 2 раза, а не думать где 1, а где 2.
-500 в карму разработчикам, которые не могли найти такой баг без анализа логов на сервере =\
Большинство моих гуманитарных знакомых (около 80%) двойным щелчком жмут все что не кнопка и не пункт меню.
Почему ссылка в обозревателях реагирует на двойной клик мне совершенно непонятно.
Почему ссылка в обозревателях реагирует на двойной клик мне совершенно непонятно.
UFO just landed and posted this here
логи смотрят в первую очередь
Блин, у меня тоже есть такой баг. Надо срочно что-то делать :)
Я реально видел человека, который ходит по ссылкам двойным кликом. И вроде технически подкованный…
А разве сложно повесить на ondblclick и onclick один и тот же разработчик.
Моя мама иногда тыкает дважды по ссылкам.
Моя мама иногда тыкает дважды по ссылкам.
У меня мама на рабочем столе щёлкает не 2 а как минимум 4 раза.
По ссылкам через раз, иногда 1 раз, иногда 2. И что бы я ей не говорил, она всё равно продолжает так делать. -_-
По ссылкам через раз, иногда 1 раз, иногда 2. И что бы я ей не говорил, она всё равно продолжает так делать. -_-
кнопки/ссылки, посты/геты… какая к черту разница? запросы имеют свойство дублироваться по самым разнообразным причинам, а делая отключение кнопки вы лишь маскируете проблему не решая её но внося неудобства. а решение простое — одинаковые запросы должны приводить к одинаковым же последствиям. то есть в запросе должно быть например не add-to-cart=phone а change-phone-count-in-cart-to=1
Хочу плагин для браузера, который при двойном клике по любой ссылке выдавал бы диалог с ругательствами. Чтобы маму отучать.
Хорошо что на Хабре такой проблемы нет!
Sign up to leave a comment.
10% пользователей кликают по ссылкам два раза