Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 11
DesTincT Сообщение 17/01/2011 13:31 Копия темы
Пересчет корзины ajax Ситуация: обычная корзина с обычными полями –  название, кол-во, цена.

Может кто подсказать сайт-пример, где реализовано такое поведение:

мы меняем кол-во товара (текстовое поле) в корзине и корзина пересчитывается. У нас нет кнопок
типа "Применить"/"Обновить" корзину, весь пересчет без перезагрузки страницы.

 
И насколько оправдано такое поведение? Ведь на каждое изменение поля (keydown, keyup, change) надо делать проверку на правильность ввода и отправлять запрос, что по-моему вообще не айс. А если у меня клавиша залипла и я ввел "1111111", добавлять такое кол-во? А если сервер будет хреново отвечать? Сталкивался кто-нибудь с этим?
Infarch Сообщение 17/01/2011 13:38 Копия темы
А зачем пересчитывать через ajax, это ведь гораздо проще сделать на клиенте, если уж известна цена товара. Авось с умножением javascript справится :). А потом клиент нажимает "Купить" и на сервер уходит колличество заказанного товара.
dkeen Сообщение 17/01/2011 13:55 Копия темы
техносила
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 Копия темы
А это уже недочет в интерфейсах :-)
Такое перекрытие имеет смысл только если вы загружаете данные, которые затем будут вставлены в важные элементы страницы, т.е. почти полностью обновляете контент и любые действия пользователя до обновления контента будут либо невозможны впринципе, либо теряют смысл.
В случае пересчета стоимости покупки в корзине действия пользователя не теряют смысла и технически осуществимы – ввод может быть продолжен (т. к. поля вы не меняете), а пересчет стоимости с учетом новых данных по-прежнему доступен (за счет еще одного запроса, который никто не мешает сгенерировать).
DesTincT Сообщение 19/01/2011 14:38 Копия темы
спасибо за разъяснения)
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"