Показать сообщение отдельно
Старый 13.06.2015, 14:08   #2
Шаман
 
Аватар для adVISeR

 
Регистрация: 13.04.2007
Адрес: Praha, ČR
Сообщений: 966
Репутация: 330 [+/-]
pokibor,
Элемент дерева это какой-то сильно сложный объект?
Менять название лучше всего прямо не меняя контекст, например, показывать поле для редактирования вместо самого названия.

Любое всплывающее окно это потеря контекста для пользователя, что не есть хорошо. Их вообще уже мало кто использует в современном мире.

Если редактирование элемента не влияет на другие объекты, то лучше редактирование проводить прямо где-то рядом, обязательно давая понять пользователю что он редактирует. Как вариант, можно использовать какой-то popover, вот как это выглядит http://getbootstrap.com/javascript/#popovers-examples (сугубо для примера, не агитирую прямо использовать этот вариант).

Если же каждый объект это что-то сильно сложное (много полей, текста), то тут без диалогового окна не обойтись, опять же, в качестве примера http://getbootstrap.com/javascript/#live-demo

Обновлять дерево можно сравнивая текущее состояние DOM с данными от сервера (если в текущем дереве узел открыт, то ставим ему флаг открытости). Но опять же, если нет сортировки или какого-либо влияния на другие объекты, то перерисовывать нужно только один элемент, может и вовсе без общения с сервером (используя данные от формы редактирования).

В плане GET/POST стоит запомнить одну простую вещь:

GET должен быть всегда идемпотентным, т.е. повторный запрос не должен ничего менять на сервере - должен использоваться сугубо для чтения/получения данных.
POST применяется для добавления новых объектов/редактирования (хотя для редактирования лучше использовать PUT/PATCH).
adVISeR вне форума  
Ответить с цитированием