![]() |
0 Всего найдено: 11
DesTincT
Сообщение
17/01/2011 13:31
Копия темы
Пересчет корзины ajax Ситуация: обычная корзина с обычными полями название, кол-во, цена. Может кто подсказать сайт-пример, где реализовано такое поведение: мы меняем кол-во товара (текстовое поле) в корзине и корзина пересчитывается. У нас нет кнопок типа "Применить"/"Обновить" корзину, весь пересчет без перезагрузки страницы. И насколько оправдано такое поведение? Ведь на каждое изменение поля (keydown, keyup, change) надо делать проверку на правильность ввода и отправлять запрос, что по-моему вообще не айс. А если у меня клавиша залипла и я ввел "1111111", добавлять такое кол-во? А если сервер будет хреново отвечать? Сталкивался кто-нибудь с этим?
Infarch
Сообщение
17/01/2011 13:38
Копия темы
А зачем пересчитывать через ajax, это ведь гораздо проще сделать на клиенте, если уж известна цена товара. Авось с умножением javascript справится :). А потом клиент нажимает "Купить" и на сервер уходит колличество заказанного товара.
netrain
Сообщение
17/01/2011 13:58
Копия темы
Наверное, раз речь идет о корзине, то человеку нужно сразу сохранять количество и стоимость на сервере, при этом пользователю не нужно ничего нажимать дополнительно. К тому же подобное поведение особенно полезно в некоторых случаях (определенные скидки, стоимость в зависимости от тех или иных условий, города и т. д.).
netrain
Сообщение
17/01/2011 14:02
Копия темы
> И насколько оправдано такое поведение? Зависит от деталей задачи/проекта и архитектуры. > Ведь на каждое изменение поля (keydown, keyup, change) надо делать проверку на правильность ввода и отправлять запрос А кто мешает делать проверку? Кстати отправлять запрос можно только при снятии фокуса либо при нажатии определенных клавишь (числа, delete и backspace). > что по-моему вообще не айс проверку все равно осуществлять надо. И лучше предупредить пользователя о некорректности кода раньше, чем он будет ждать сообщения об успешном оформлении заказа. > А если у меня клавиша залипла и я ввел "1111111" А если монитор сгорел? А если мозг переклинило у пользователя? А если он внезапно передумал вообще покупать что-либо? Подобные вещи не рассматриваем. В конце концов никто не мешает сделать проверки на набор текста (300 мс 1 с где-то если ввода нет, можно проверять данные и отправлять на сервер, если ввод произошел раньше не отправляем, пока пользователь не прекратит ввод). > добавлять такое кол-во? да, добавлять. а если у пользователя кнопки плохо нажимаются и он, напротив, хотел еще больше ввести вы ведь об этом не узнаете, правильно? И если пересчет выполниться чуть раньше, чем пользователь введет нужное число ничего страшного, все равно еще раз обсчитается. > А если сервер будет хреново отвечать? смените хостера на того, у которого с серверами все хорошо.
Infarch
Сообщение
17/01/2011 14:05
Копия темы
Ну если все так сложно, то да... Тогда можно делать запрос через 3 секунды после последней активности юзера, к примеру.
DesTincT
Сообщение
17/01/2011 15:31
Копия темы
спасибо за мысли Просто не хочется перегибать палку с этими делами) Пока решение такое: поставить проверку на валидность на клиенте, показывать "что что-то не так". Если все нормально то через 2,5 сек. (потом эмпирически подобрать время) делать запрос. На время выполнения запроса поля блокируются для ввода.
netrain
Сообщение
19/01/2011 10:47
Копия темы
Не блокируйте поля на время выполнения запроса для вас выгоды никакой, для пользователя неудобство, если вдруг он решит что-то поправить
DesTincT
Сообщение
19/01/2011 13:36
Копия темы
на время выполнения запроса все равно появляется сверху блок с картинкой загрузки, который все перекрывает)
netrain
Сообщение
19/01/2011 14:17
Копия темы
0
А это уже недочет в интерфейсах :-) Такое перекрытие имеет смысл только если вы загружаете данные, которые затем будут вставлены в важные элементы страницы, т.е. почти полностью обновляете контент и любые действия пользователя до обновления контента будут либо невозможны впринципе, либо теряют смысл. В случае пересчета стоимости покупки в корзине действия пользователя не теряют смысла и технически осуществимы ввод может быть продолжен (т. к. поля вы не меняете), а пересчет стоимости с учетом новых данных по-прежнему доступен (за счет еще одного запроса, который никто не мешает сгенерировать). |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |