Comments 82
есть люди с выключенным javascript'ом
Какой их процент по отношению к тем, у кого он включен? Для таких людей всегда можно поставить тег noscript. Но из-за очень маленькой группы параноиков усложнять жизнь большинству по-моему неправильно;)
Да, написать конечно это стоило, ибо у тех, кто с без js, ничего бы не случилось. А эту наднись снизу, можно вставить в noscript.
Тут вообще я вижу протеворечие. Ведь, если там вообще не используется js, а просто «кононическая» форма, то при сабмите, браузер сразу должен перейти на страницу с адресом из action. Тогда естественно и не нужно никаких предупреждений. А если там ajax, то кнопку можно и нужно блокировать.
Тут вообще я вижу протеворечие. Ведь, если там вообще не используется js, а просто «кононическая» форма, то при сабмите, браузер сразу должен перейти на страницу с адресом из action. Тогда естественно и не нужно никаких предупреждений. А если там ajax, то кнопку можно и нужно блокировать.
Ведь, если там вообще не используется js, а просто «кононическая» форма, то при сабмите, браузер сразу должен перейти на страницу с адресом из action.Пока сервер не ответит висит старая страница.
Вы часто в речи употребляете слово «конон»?
У меня, например, по умолчанию отключен Javascript везде. И я имею мнение, что тот сайт, который не работает без javascript, хотя вполне бы мог, — ну вы поняли.
Да, иногда интерактивность необходима, но если без неё вполне можно обойтись, то надо обходиться. Так что предупреждение очень в тему.
С другой стороны лучшее решение тут — у кого отключен, тому показывать предупреждение, у кого включен — дисейблить кнопку.
Да, иногда интерактивность необходима, но если без неё вполне можно обойтись, то надо обходиться. Так что предупреждение очень в тему.
С другой стороны лучшее решение тут — у кого отключен, тому показывать предупреждение, у кого включен — дисейблить кнопку.
У меня, например, по умолчанию отключен Javascript везде. И я имею мнение, что тот сайт, который не работает без javascript, хотя вполне бы мог, — ну вы поняли.Например Хабрахабр, да. Ну и как же твои комментарии тут образуются? Усилием мысли без захода на сайт?
Ну ладно, не надо передёргивать :-)
Я просто застал ту эпоху, когда было куча сайтов, на которые зайди только со включенным скриптом — потом систему будешь переставлять.
И потом — одно дело, когда ты каждый раз ходишь на один и тот же сайт, а другое — когда зашел один раз, потому что надо… Заплатить, например. Или заявку оставить.
Я просто застал ту эпоху, когда было куча сайтов, на которые зайди только со включенным скриптом — потом систему будешь переставлять.
И потом — одно дело, когда ты каждый раз ходишь на один и тот же сайт, а другое — когда зашел один раз, потому что надо… Заплатить, например. Или заявку оставить.
я включаю яваскрипт для некоторых сайтов. И да, у меня вообще много чего отключено. Хабр, кстати, в этом плане так себе сделан — с профессиональной точки зрения. Даже древний жж лучше.
*Готовится выдержать выдержать гнев хабра-фанбоев* :)
*Готовится выдержать выдержать гнев хабра-фанбоев* :)
> «Да, иногда интерактивность необходима, но если без неё вполне можно обойтись, то надо обходиться. „
Практически все сайты могут обходится без интерактивности, но тогда мы вернемся в 90ы годы.
Практически все сайты могут обходится без интерактивности, но тогда мы вернемся в 90ы годы.
Не вернёмся — контент-то разный. А если у меня картинка красиво не выедет или флеш-банер не покажется — я переживу в 99% случаев. В 1% один клик — и выедет и покажется.
Вот ты дверь любому, кто постучит, открываешь? Или пытаешься сначала узнать кто там?
Вот ты дверь любому, кто постучит, открываешь? Или пытаешься сначала узнать кто там?
Если я в бронежилете, а перед дверью у меня пост охраны, то можно и не спрашивать «кто там?».
Если б я был удачливым парнишкой, у меня, может, и двери не было бы :-)
Кстати, минусуют, видать, несогласные с предложенным мною в последней строке решением.
Кстати, минусуют, видать, несогласные с предложенным мною в последней строке решением.
Минусуют — потому что ты остался в 90-х а мы в другом веке. Без js сайт становится мертвым.
Готов поспорить на эту тему. Для тех кому «тут мы скриптик присобачим, + 5К руб», может и так.
Я все к первому своему посту, минусами вы мне тут не отделаетесь :-)
Есть немало людей с принципиально отключенным JavaScript по умолчанию. Они ряд ли будут участвовать в голосовалках типа «а нужен ли вам javascript?». Как говорится, «согласно результатам опроса, проведенного в интернете, интернет есть у 100% россиян».
Так вот, сайт должен выполнять свои функции, если, конечно, это возможно, и с такими людьми. Вы делаете специфический поисковик, интернет-магазин или сервис? Протестируйте его работу без скриптов. «Спасибо» вы вряд ли увидите и услышите, но оно будет. (Да, можете цепляться к этой фразе тоже.) Мне вот лично неохота пользоваться интернет-магазином, если там товар без скрипта посмотреть нельзя. Берите пример с GMail — там даже спецрежим такой есть: обычный HTML. На медленном соединении рулит.
Я все к первому своему посту, минусами вы мне тут не отделаетесь :-)
Есть немало людей с принципиально отключенным JavaScript по умолчанию. Они ряд ли будут участвовать в голосовалках типа «а нужен ли вам javascript?». Как говорится, «согласно результатам опроса, проведенного в интернете, интернет есть у 100% россиян».
Так вот, сайт должен выполнять свои функции, если, конечно, это возможно, и с такими людьми. Вы делаете специфический поисковик, интернет-магазин или сервис? Протестируйте его работу без скриптов. «Спасибо» вы вряд ли увидите и услышите, но оно будет. (Да, можете цепляться к этой фразе тоже.) Мне вот лично неохота пользоваться интернет-магазином, если там товар без скрипта посмотреть нельзя. Берите пример с GMail — там даже спецрежим такой есть: обычный HTML. На медленном соединении рулит.
Давайте местами не будем переставлять. GMail шел ОТ plainHTML. Просто постоянно поддерживают его.
Сейчас, если задача решается просто с JavaScript, никто и никогда не будет делать HTML-версию. Пример с Хаброй — да, тут вроде без JavaScript можно ответить (судя по ссылкам ?reply_to=), НО вы представьте на что натолкнется поисковик? КУЧА ссылок на одной странице, которые ведут на ее же саму.
Мне оно надо? Чтобы индекс упал. Нет, я лучше вышвырну с сайта тех, кто не хочет включать JavaScript.
Другой пример. Форма заказа в интернет-магазине. Я руководил группой разработчиков, которые постоянно развивали один магазин. Работы было невпроволок. По 50+ записей в ToDo. и 40% из них касаемо удобства пользователей, всяких фишек и прочего. Так вот, возвращаясь к форме, которая автоматически подгружала, считала и все красиво делала. Клиент попросту не оплатит функционал без JavaScript, а на его реализацию уйдет чуть ли не столько же времени. Оно мне надо? Клиенту оно надо? Нет и нет.
Другое дело, что когда вся работа будет сделана, когда все будет отлажено, можно улучшать существующее. Но что-то по 7-милетнему опыту своему ни разу такого просвета не было.
PS: Рядом с формой оформления заказа была ссылка «Проблема с оформлением?». Никакого JavaScript, тупой POST. За год работы магазина НИ ОДНОГО тикета в техподдержку по этому поводу. Магазин был довольно посещаем, чтобы не было недоразумений.
Сейчас, если задача решается просто с JavaScript, никто и никогда не будет делать HTML-версию. Пример с Хаброй — да, тут вроде без JavaScript можно ответить (судя по ссылкам ?reply_to=), НО вы представьте на что натолкнется поисковик? КУЧА ссылок на одной странице, которые ведут на ее же саму.
Мне оно надо? Чтобы индекс упал. Нет, я лучше вышвырну с сайта тех, кто не хочет включать JavaScript.
Другой пример. Форма заказа в интернет-магазине. Я руководил группой разработчиков, которые постоянно развивали один магазин. Работы было невпроволок. По 50+ записей в ToDo. и 40% из них касаемо удобства пользователей, всяких фишек и прочего. Так вот, возвращаясь к форме, которая автоматически подгружала, считала и все красиво делала. Клиент попросту не оплатит функционал без JavaScript, а на его реализацию уйдет чуть ли не столько же времени. Оно мне надо? Клиенту оно надо? Нет и нет.
Другое дело, что когда вся работа будет сделана, когда все будет отлажено, можно улучшать существующее. Но что-то по 7-милетнему опыту своему ни разу такого просвета не было.
PS: Рядом с формой оформления заказа была ссылка «Проблема с оформлением?». Никакого JavaScript, тупой POST. За год работы магазина НИ ОДНОГО тикета в техподдержку по этому поводу. Магазин был довольно посещаем, чтобы не было недоразумений.
Сейчас, если задача решается просто с JavaScript, никто и никогда не будет делать HTML-версию.ошибаетесь, уважающий себя разработчик будет. И достаточно одного миртесен (а он работает без жс), чтобы ваше утверждение «никто и никогда» стало ложью.
падающий от ссылок на себя индекс — лол % )
Уважаемый, прочитайте, пожалуйста, внимательнее мой комментарий. Честь и хвала тому, кто сделает _свой_ проект качественный со всех сторон. Но иногда все тупо упирается в деньги.
>падающий от ссылок на себя индекс
Тоже, пожалуйста, поясните — разве я не прав?
>падающий от ссылок на себя индекс
Тоже, пожалуйста, поясните — разве я не прав?
Кстати, довольно интересна и другая грань денег. Когда их проект приносит много, то на развитие, которое принесете уважение разработчику, забивают. Развиваются только для того, чтобы принести еще больше денег. Пример с ВКонтакте — зачем ему оно надо — уважение. Он лучше выделит еще денег художнику подарков всяких, чтобы под Новый Год еще больше денег срубить. Ну вот как-то так в Рунете все и происходит.
я прочёл комментарий внимательно, и увидел в нём слова «никто и никогда», на которые и ответил. А теперь вы пишете «иногда». Да, иногда упирается. Но это не повод делать безапелляционные заявления, как в предыдущем комменте.
а что, у жж и форумов индексы нулевые? они-то вон как на себя ссылаются: )падающий от ссылок на себя индексТоже, пожалуйста, поясните — разве я не прав?
> а что, у жж и форумов индексы нулевые? они-то вон как на себя ссылаются: )
Странно вы на вопрос отвечаете. Я спросил — «влияет ли», желая услышать какие-то аргументы. Вы опять переключились на крупные сервисы. Скажу по другому — на начальном этапе раскрутки такой рассадник ссылок пагубно влияет на индекс. В дальнейшем — может и нет.
Ссылка сама на себя с возможностью ответа на один комментарий обладает еще одним огромным минусом — браузер лишний раз передергивается от сотен комментариев, которые загружаются. Именно для этого и ввели на хабре кнопку справа «обновить дерево комментариев».
> и я говорил про уважающего себя разработчика, с профессиональной гордостью, который не будет поддаваться искушению подхода «пипл хавает»
Вам просто не приходилось считать деньги по ходу. Когда из N дней и M тысяч рублей попросту необходимо рассчитать бюджет разработки и куда и что потратить (на улучшение сайта для 1% посетителей или для 99%). И чтобы прибыль была. И в условиях ограниченного бюджета мне скажут «спасибо» 99% посетителей.
> Впрочем, желание вышвыривать кого-то с сайта кое о чём говорит.
О чем?
Странно вы на вопрос отвечаете. Я спросил — «влияет ли», желая услышать какие-то аргументы. Вы опять переключились на крупные сервисы. Скажу по другому — на начальном этапе раскрутки такой рассадник ссылок пагубно влияет на индекс. В дальнейшем — может и нет.
Ссылка сама на себя с возможностью ответа на один комментарий обладает еще одним огромным минусом — браузер лишний раз передергивается от сотен комментариев, которые загружаются. Именно для этого и ввели на хабре кнопку справа «обновить дерево комментариев».
> и я говорил про уважающего себя разработчика, с профессиональной гордостью, который не будет поддаваться искушению подхода «пипл хавает»
Вам просто не приходилось считать деньги по ходу. Когда из N дней и M тысяч рублей попросту необходимо рассчитать бюджет разработки и куда и что потратить (на улучшение сайта для 1% посетителей или для 99%). И чтобы прибыль была. И в условиях ограниченного бюджета мне скажут «спасибо» 99% посетителей.
> Впрочем, желание вышвыривать кого-то с сайта кое о чём говорит.
О чем?
форумы — не такие уж крупные сервисы. А в нашем миртесен даже на начальной стадии ссылки на ту же страницу особого эффекта не имели
что касается передёргивания сотен комментариев — уж лучше это терпеть и иметь возможность ответить на комментарий, чем иметь непередергивающуюся страницу, на которой ничего нельзя сделать
лично мне распределять деньги на разработку не приходилось. Зато приходилось видеть, как при грамотной организации кода поддержка обоих вариантов сложнее всего лишь на несколько процентов. Которые мы были не прочь потратить и из личного времени. Из того самого уважения к себе.
желание вышвыривать хорошо ложится рядом с «пипл хавает», «вас много, а я одна», и некоторыми другими не очень симпатичными мне стереотипами.
впрочем, дело ваше
что касается передёргивания сотен комментариев — уж лучше это терпеть и иметь возможность ответить на комментарий, чем иметь непередергивающуюся страницу, на которой ничего нельзя сделать
лично мне распределять деньги на разработку не приходилось. Зато приходилось видеть, как при грамотной организации кода поддержка обоих вариантов сложнее всего лишь на несколько процентов. Которые мы были не прочь потратить и из личного времени. Из того самого уважения к себе.
желание вышвыривать хорошо ложится рядом с «пипл хавает», «вас много, а я одна», и некоторыми другими не очень симпатичными мне стереотипами.
впрочем, дело ваше
«Но из-за очень маленькой группы параноиков усложнять жизнь большинству по-моему неправильно» — а большинство видимо любит усложнять себе жизнь нажимая повторно клавишу «заплатить».
Хуже — есть люди знающие про кнопку «Назад» в браузере! Правда никто не мешает и кнопки отключить и сообщение оставить…
какая разница данный код не будет работать и с включенным ))
Никогда не понимал, зачем в OnClick писать «javascript:...», это и так подразумевается.
Другое дело href=«javascript:...».
В OnClick это избыточно.
Другое дело href=«javascript:...».
В OnClick это избыточно.
А href=«javascript:...» вообще никогда писать не стоит.
Я знаю. Но Вам, высказывая замечание, следует указать почему.
Это скорее не замечание, а напоминание. Как раз для тех, кто знает. ;)
А оттипографленные кавычки я очень неудачно скопировал, речь конечно же не о них.
А вы обычные не сможете написать, хабр не даст :)
Что значит "хабр не даст написать" — мне ведь даёт, чем вы хуже?
Ну это уже ""читерство"" :)
imho это может быть разработкой не мегафона, а платежной системы, которую они используют.
При работе с деньгами, такой метод может предотвратить весьма неприятные последствия…
Я думаю, что в большинстве случаев подход не верен. В ЭТОМ случае можно было бы при нажатии на «Оплатить» поставить транзакцию в очередь на обрабатывающем сервере, а пользователю быстро отдать страничку «Спасибо, ваш запрос обрабатывается, по завершению вы получите СМС о результате. Если у вас возникнут проблемы, то обратитесь по этому телефону +79991234567 и назовите код MEGAFNO432».
вы действительно не понимаете почему там нет дисэйбла или прикалываетесь?
это же очевидно, что если человек несколько раз нажмет кнопку то может статься платеж пройдет несколько раз увеличив выручку компании М. Это элементарный способ нажиться на потребителе, ведь суммы на мобильный обычно зачисляют небольшие и почти никто не будет заморачиваться с поездкой в офис за возвратом суммы.
это же очевидно, что если человек несколько раз нажмет кнопку то может статься платеж пройдет несколько раз увеличив выручку компании М. Это элементарный способ нажиться на потребителе, ведь суммы на мобильный обычно зачисляют небольшие и почти никто не будет заморачиваться с поездкой в офис за возвратом суммы.
Согласен, а чтобы их не упрекали в присвоении чужих денег — они и написали, чтобы не нажимали кнопку несколько раз.
Есть вещи превыше юзабельности :-)
Повторные платежи не проходят. О чем и сообщается пользователю, который нажмет два раза подряд кнопку.
За что минусонули карму?
Лучше затемнить весь екран и вставить какой-нить лоадер ;) со словами, мол «Идёт выполнение транзакции»
О, я не знал, что за МФ можно карточкой оплачивать. Спасибо за информацию!
Попробовал оплатить…
Сделал тестовый платеж в 10 рублей. Меня заставили зарегистрироваться и сделать ещё один тестовый платеж на некруглую сумму с копейками. Потом попросили ввести номер карты и эту самую сумму, которую можно узнать (она представляет собой случайное число от 1 р до 10 р), например, через личный кабинет моего банка. Ввел. Меня послали. Ввел с другим разделителем десятичных разрядов — снова был послан. Указаний на то, что вводить запятую или точку для разделения целых и дробных долей на сайте нет. В итоге плюнул и пошел заплатил в банкомате — не так удобно, зато работает. WTF.
Сделал тестовый платеж в 10 рублей. Меня заставили зарегистрироваться и сделать ещё один тестовый платеж на некруглую сумму с копейками. Потом попросили ввести номер карты и эту самую сумму, которую можно узнать (она представляет собой случайное число от 1 р до 10 р), например, через личный кабинет моего банка. Ввел. Меня послали. Ввел с другим разделителем десятичных разрядов — снова был послан. Указаний на то, что вводить запятую или точку для разделения целых и дробных долей на сайте нет. В итоге плюнул и пошел заплатил в банкомате — не так удобно, зато работает. WTF.
Во-первых, наверняка этот кусок страницы — не самого мегафона, а непосредственно платёжной системы/шлюза (возможно даже iframe).
Во-вторых, даже если это кусок самого мегафона — всё просто — в ТЗ поведение указано не было, соотв. разработчиками не реализовано. Вероятно, Мегафон зажмотился — ПМ дал команду разработчикам — «делать как в ТЗ и не лучше, клиент — жмот». Теперь, когда Мегафон заметил «нехорошее место» — это доп.работы, для этого надо у начальства выбить денег… Поэтому соответствующий менеджер тупо решил дописать «пожалуйста, не нажимайте меня много....», чтобы хоть как-то исправить ситуацию :)
Во-вторых, даже если это кусок самого мегафона — всё просто — в ТЗ поведение указано не было, соотв. разработчиками не реализовано. Вероятно, Мегафон зажмотился — ПМ дал команду разработчикам — «делать как в ТЗ и не лучше, клиент — жмот». Теперь, когда Мегафон заметил «нехорошее место» — это доп.работы, для этого надо у начальства выбить денег… Поэтому соответствующий менеджер тупо решил дописать «пожалуйста, не нажимайте меня много....», чтобы хоть как-то исправить ситуацию :)
type=«submit» onclick=«javascript:this.disabled=true;»
Если пользователь нажмет enter, то кнопка не «зидизейблится» в вашем случае.
Мне кажется лучше вешать disabled=true на событие onsubmit формы
На самом деле, решение с дизейблом порождает другую проблему, которая лично меня раздражает гораздо больше.
Проблема первая описана вами: человек может нажать на кнопку второй раз, если устанет ждать и подумает, что в первый раз не нажал или что-то не сработало.
Проблема вторая. Делаем дизейбл перед отправкой. Человек отправляет форму, а на следующей странице ему говорят, что он ввел неверные данные. Человек нажимает кнопку «Назад» и возвращается на предыдущую страницу. Если браузер у него правильный, то релоада страницы не происходит и все введённые данные сохранились в полях формы. И вот тут его подстерегает облом! Вместо того, чтобы исправить 1 символ и нажать на «отправить», он вынужден перезагружать страницу и вводить заново все данные, потому что кнопка «отправить» неактивна :)
Проблема первая описана вами: человек может нажать на кнопку второй раз, если устанет ждать и подумает, что в первый раз не нажал или что-то не сработало.
Проблема вторая. Делаем дизейбл перед отправкой. Человек отправляет форму, а на следующей странице ему говорят, что он ввел неверные данные. Человек нажимает кнопку «Назад» и возвращается на предыдущую страницу. Если браузер у него правильный, то релоада страницы не происходит и все введённые данные сохранились в полях формы. И вот тут его подстерегает облом! Вместо того, чтобы исправить 1 символ и нажать на «отправить», он вынужден перезагружать страницу и вводить заново все данные, потому что кнопка «отправить» неактивна :)
Вообще, неплохо было бы подстраховаться и на серверной стороне: например, генерировать уникальный ключ платежа, и если он дублирует предыдущий, игнорировать.
Думаете, что там такого нет?
Зачем тогда надпись?
На самом деле не предыдущий игнорировать надо, а последующие. Но тогда если это повтор пишется, что повторно жмете и тд и тп, а про результат первого (выполненного) действия информации нет.
Конечно, последующие. Я это и имел в виду. Вообще можно заносить его в базу данных в поле с ключом UNIQUE, тогда всё «само» и получится.
Видимо сайт делал Василий, а его религия говорит, что javascript от лукавого, а jquery и вовсе дитя Сатаны. А вот текст с признанием того, что интерфейс кривой — это неповторимый «стайл».
Гораздо лучше не дисэблить кнопку, а сабмитить на промежуточную страницу с надписью «подождите» и редиректом на скрипт обработки. Решится проблема повторных нажатий, и можно будет корректно вернуться на страницу с формой, исправить, отправить еще раз, и будет работать даже без javascript.
Другой вариант еще лучше (но реализовать сравнительно сложно) — сабмитим на страницу статуса, при этом запрос на обработку данных ставим в очередь (с обрабокой в фоне). Страницу статуса рефрешим каждые 10 секунд до тех пор, как не появится результат от обработчика.
Другой вариант еще лучше (но реализовать сравнительно сложно) — сабмитим на страницу статуса, при этом запрос на обработку данных ставим в очередь (с обрабокой в фоне). Страницу статуса рефрешим каждые 10 секунд до тех пор, как не появится результат от обработчика.
ИМХО, лучше дисэблить кнопку на сабмит формы, а не по нажатию на кнопку. Форму можно сабмитить и Enter-ом.
Опера при нажатии кнопки «Назад» не загружает страницу заново, а показывает запомненную страницу. В данном случае покажется страница с запрещенной кнопкой, придется перегружать страницу вручную — неудобно.
Sign up to leave a comment.
Учимся дисейблить кнопки на примере «Мегафона»