Один вопрос на три темы: Юзабилити/JavaScript/Оптимизация

12 3
kotor
На сайте с 16.05.2010
Offline
91
1870

Доброго дня.

Опишу ситуацию.

У меня на сайте очень много функционала на аяксе: регистрация, авторизация, сообщения, комменты, корзина и прочее.

Допустим ко мне попадает юзер с отключенным JavaScript -> функционал перестает работать, и нам нужно это пересмотреть.

Я решил сделать это примерно таким образом:

<form>
<input type="button" class="js_yes" style="display:none" value="Кнопка, работающая с JS">
<input type="submit" class="js_no" value="Кнопка, работающая без JS">
</form>

<script>
$('.js_no').hide();
$('.js_yes').show();
</script>

Окей, теперь функционал пашет, всегда появляется одна кнопочка, очень круто, но

обработчик изначально был написан для AJAX. То есть при отключенном JavaScript, при клике на кнопку, происходит переход на страницу обработчика, с одной строкой ответа, которая по идее должна была быть выведена на странице клика с помощью AJAX.

Прости за такую логику повествования, всегда было тяжело с написанием текстом. Если что, могу сделать все картинками, чтобы была точно ясна проблема :)

Я подумал что можно сделать копию каждого обработчика: под AJAX и простой. Чтобы не было одностроковых страниц. Но как то мне этот вариант вообще не нравится.

Или может быть стоит около каждой кнопки написать "Включите JavaScript или у вас ничего не получится!!1"

Интересно услышать кто как решает такую проблему. Может быть ответ лежит на самом верху и я просто его не вижу. Буду рад всем советам, спасибо :idea:

N
На сайте с 06.05.2007
Offline
419
#1
kotor:
Допустим ко мне попадает юзер с отключенным JavaScrip

не попадет. а если попадет, то вам во всех отношениях дешевле не тратить на него время и не уродовать сайт.

Кнопка вызова админа ()
C
На сайте с 04.02.2005
Offline
277
#2

А зачем делать копию обработчика?

проверьте с какой кнопки пришел пользователь и или отдайте аякс-ответ, или location на нужную страницу

юзер с отключенным JavaScript

Если и придет, то он знает, что у него отключен js

kotor
На сайте с 16.05.2010
Offline
91
#3

То есть можно даже не ставить уведомление о том, что JS отключен?

А если все таки будет какой-то процент таких пользователей?

C
На сайте с 04.02.2005
Offline
277
#4

Это уже их проблема

kotor
На сайте с 16.05.2010
Offline
91
#5
Chukcha:
Это уже их проблема

Как то вы не очень демократичны по отношению к пользователям)

Ayavryk
На сайте с 11.10.2003
Offline
209
#6

1. Совершенно непонятно зачем вам нужны две совершенно одинаковые кнопки?

Если js выключен, форма отправится по сабмиту, если включен - перехватываете сабмит и отправку данных делаете так как вам нужно. что-то типа

form.sumit(function(){ ... return false; })

Может чего-то недоговариваете?

2. У вас кнопочки плясать будут. Хоть и быстро , но плясать. Это некрасиво.

3. Кстати, отдельные личности очень любят сабмитить не по нажатию кнопки, а по Enter в логине или пароле. И перехват нажатия кнопки в этом случае ничего не даст.

netwind:
вам во всех отношениях дешевле не тратить на него время и не уродовать сайт.

Откуда вы знаете, о каком сайте речь? Если речь идет о платежных системах, то может получится дороже.

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/
kotor
На сайте с 16.05.2010
Offline
91
#7
Ayavryk:
1. Совершенно непонятно зачем вам нужны две совершенно одинаковые кнопки?
Если js выключен, форма отправится по сабмиту, если включен - перехватываете сабмит и отправку данных делаете так как вам нужно. что-то типа
form.sumit(function(){ ... return false; })
Может чего-то недоговариваете?
2. У вас кнопочки плясать будут. Хоть и быстро , но плясать. Это некрасиво.
3. Кстати, отдельные личности очень любят сабмитить не по нажатию кнопки, а по Enter в логине или пароле. И перехват нажатия кнопки в этом случае ничего не даст.

Этот вариант решает проблему с кнопками, но не решает проблемы с обработчиком.

C
На сайте с 04.02.2005
Offline
277
#8

А где вы видите проблему в обработчике?

Ваша задача только знать, что запрос пришел от Настоящего сабмита, или от аякс.

а чтоб кнопки не плясали, то не используйте .show и .hide

.css ('display','inline') или .css('display','none')

N
На сайте с 06.05.2007
Offline
419
#9
Ayavryk:
Откуда вы знаете, о каком сайте речь? Если речь идет о платежных системах, то может получится дороже.

Тем более, если речь идет о платежных системах. Стоимость времени работы программистов занятых в этой отрасли еще больше.

Например, на light.webmoney.ru навигация делает вид что работает, но верхнее меню полностью не показывается и нет возможности в эти пропавшие пункты перейти иным способом кроме как через меню на javascript.

Невозможно комфортно посещать современные сайты без яваскрипта. Это не пользователи, а идейные маргиналы какие-то.

Ayavryk
На сайте с 11.10.2003
Offline
209
#10
kotor:
Этот вариант решает проблему с кнопками, но не решает проблемы с обработчиком.

Как это не решает? JS решает все!

netwind:
Тем более, если речь идет о платежных системах. Стоимость времени работы программистов занятых в этой отрасли еще больше

Извините, но я работаю в такой организации. Моя зарплата примерно 1.5-2 раза выше средней по отрасли. И на фоне прибыли компании не видна в микроскоп.

netwind:
Например, на light.webmoney.ru навигация делает вид что работает .

Вебмани - очень хороший пример того как у*бищный интерфейс напрямую приводит к недополучению чистой прибыли. Знаю достаточно много людей, которые не пользуются им ровно по той же причине. Да и сам после появления ЯД перестал пользоваться.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий