Какой подход лучше использоать, если есть список и операции на ним?
Например, три операции: добавить, удалить и редактировать.
Я вижу два подхода.
1. Использовать JS для передачи в запросе ключа того объекта, с которым хотим провести операцию. Для этого в каждой строке списка будет храниться ключ, например в id элемента:
<div id="1" class="...">Объект</div>. На событие нажатия на ссылку вещаем обработчик, который добавит в href ключ объекта: command="..."&id="...".
2. Использовать форму и элемент radio button и за счет него передавать ключ.
Я так понимаю способ с JS более предпочтителен сейчас?
Здравствуйте, techgl, Вы писали:
T>Какой подход лучше использоать, если есть список и операции на ним? T>Например, три операции: добавить, удалить и редактировать. T>Я вижу два подхода. T>1. Использовать JS для передачи в запросе ключа того объекта, с которым хотим провести операцию. Для этого в каждой строке списка будет храниться ключ, например в id элемента: T><div id="1" class="...">Объект</div>. На событие нажатия на ссылку вещаем обработчик, который добавит в href ключ объекта: command="..."&id="...". T>2. Использовать форму и элемент radio button и за счет него передавать ключ. T>Я так понимаю способ с JS более предпочтителен сейчас?
Что за список, что за элементы? Если это список каких-либо данных на сервере, то в любом случае надо будет делать ту же операцию на сервере
Здравствуйте, Mamut, Вы писали:
M>Что за список, что за элементы? Если это список каких-либо данных на сервере, то в любом случае надо будет делать ту же операцию на сервере
Речь о передаче ключа объекта на сервер. Какой вариант сейчас более предпочтителен, через radio button или через формирование href для A элемента с помощью JS?
Здравствуйте, techgl, Вы писали:
T>Какой подход лучше использоать, если есть список и операции на ним? T>Например, три операции: добавить, удалить и редактировать. T>Я вижу два подхода. T>1. Использовать JS для передачи в запросе ключа того объекта, с которым хотим провести операцию. Для этого в каждой строке списка будет храниться ключ, например в id элемента: T><div id="1" class="...">Объект</div>. На событие нажатия на ссылку вещаем обработчик, который добавит в href ключ объекта: command="..."&id="...". T>2. Использовать форму и элемент radio button и за счет него передавать ключ. T>Я так понимаю способ с JS более предпочтителен сейчас?
Радиобаттон я бы не использовал. Использовать JS для описанной задачи — тоже непонятно для чего. Понимаешь, все эти операции могут уже содержать кнопки с ID, и всё это можно формировать на сервере. Напримерт, ты на сервере формируешь такие ссылки
<li> Элемент №1
<a href="/go?id=1&op=add">Add</a>
<a href="/go?id=1&op=del">Del</a>
<a href="/go?id=1&op=edt">Edt</a>
</li>
<li> Элемент №2
<a href="/go?id=2&op=add">Add</a>
<a href="/go?id=2&op=del">Del</a>
<a href="/go?id=2&op=edt">Edt</a>
</li>
И передаёшь этот код клиенту.
Откуда вообще идея тут использовать javascript? Что это может тебе дать?
Здравствуйте, monax, Вы писали:
M>Радиобаттон я бы не использовал. Использовать JS для описанной задачи — тоже непонятно для чего. Понимаешь, все эти операции могут уже содержать кнопки с ID, и всё это можно формировать на сервере. Напримерт, ты на сервере формируешь такие ссылки
Этот способ самый простой и самый неприглядный с точки зрения пользователя. Зачем нам, допустим, для 5 элементов, 15 кнопок? Нам всего три нужно и возможность каким-либо образом указать, с камим элементом списка проводим операцию.
Здравствуйте, techgl, Вы писали: T>Этот способ самый простой и самый неприглядный с точки зрения пользователя. Зачем нам, допустим, для 5 элементов, 15 кнопок? Нам всего три нужно и возможность каким-либо образом указать, с камим элементом списка проводим операцию.
Вопрос приглядности для пользователя полностью ортогонален вопросу использования JS.
Кстати, специалисты по usability считают способ управления списком через "выбрать элемент — выбрать действие" одним из наименее эффективных для пользователей
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Кстати, специалисты по usability считают способ управления списком через "выбрать элемент — выбрать действие" одним из наименее эффективных для пользователей
А какой тогда эффективный?
Здравствуйте, techgl, Вы писали:
T>Здравствуйте, Sinclair, Вы писали:
S>>Кстати, специалисты по usability считают способ управления списком через "выбрать элемент — выбрать действие" одним из наименее эффективных для пользователей T>А какой тогда эффективный?
Наверно тот, которым тебе самому пользоваться удобнее. Ну вот сам прикинь, у тебя список из 30 позиций. Не на всех мониторах этот список уместится целиком, кому-то придётся скролить, чтобы найти заветные кнопки. Далее, пусть даже скролить не нужно (всё влезло), но мне нужно угадывать в какой угол страницы поместила кнопки дизайнерская фантазия.
Вариант с тремя кнопками для всего списка подходит в том случае, когда подразумеваются операции над множеством позиций твоего списка. Только вместо радиобатонов нужны чекбоксы.
Применяя javascript нужно помнить о том, что даже пользователь, отключивший его, должен иметь возможность отправить форму.
Здравствуйте, monax, Вы писали:
M>Вариант с тремя кнопками для всего списка подходит в том случае, когда подразумеваются операции над множеством позиций твоего списка. Только вместо радиобатонов нужны чекбоксы.
То есть лучше делать элемент списка — ссылка на отдельную страницу, а там уже действия?
Здравствуйте, techgl, Вы писали: T>А какой тогда эффективный?
Эффективный — построенный на пользовательских сценариях.
Его сложность в том, что для применения нужно думать головой.
Способ "работать со списком" позволяет выпустить продукт, вообще не привлекая голову к процессу. Как только у нас образовалась в результате моделирования предметной области сущность — сразу появляется UI для "добавления", "удаления", и "редактирования" сущности.
В реальной жизни 90% "сущностей" являются побочным результатом анализа, и не соответствуют ничему в ментальной модели среднего пользователя. Поэтому набор действий "по редактированию списка" пользователю нужно мучительно осваивать.
Поэтому продвинутые парни пытаются выяснить, что именно пользователь делает или собирается делать на самом деле. И строят интерфейс исходя именно из этого.
Второй (помимо расходов умственного ресурса) недостаток этого подхода в том, что в отличие от "наивного" способа у пользователя отрезаются некоторые "побочные" ветки сценария. Это хорошо для неопытных пользователей (для которых важно как раз не свалиться в побочную ветку, которая еще и окажется тупиком), но сдерживает энтузиазм творческих пользователей. Ну вот, к примеру, допустим была фича в клиент-банке "перевести деньги на произвольный щёт", которая позволяла (при знании массы труднодоступных деталей), перекинуть деньги на карточку твоего друга. И вы с другом этим пользовались, а остальные четыре миллиона пользователей матерились и ненавидели эту фичу. Потом умный банк эту фичу убрал, заменив ее на фичу "заплатить за мобильный телефон". Потому что остальные четыре миллиона пользователей хотели ровно этого, и заполнять всякий раз ИНН и ОКПО вымпелкома им, естественно, было очень тяжело. Теперь они щасливы — а вы с другом встряли, потому что друг не работает в вымпелкоме.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, techgl, Вы писали:
T>Здравствуйте, monax, Вы писали:
M>>Вариант с тремя кнопками для всего списка подходит в том случае, когда подразумеваются операции над множеством позиций твоего списка. Только вместо радиобатонов нужны чекбоксы. T>То есть лучше делать элемент списка — ссылка на отдельную страницу, а там уже действия?
Вряд ли это удобно, лучше всего, когда действия рядом с элементом. Ну сам посуди, для того, чтобы увидеть список операций над одним элементом, нужно переходить на другую страницу. На другой странице лучше помещать предупреждения, хотя их лучше показать при помощи javascript.