Forums / National / Russian / Я возмущен

Мы тут как работаем? Что хочу то и делаю?

Trustmaster
#10607 2009-03-28 14:26
У меня двоякое впечатление.

С одной стороны, oc поступил очень некрасиво и спонтанно, откатив изменения без каких-либо предварительных обсуждений, за что я сделаю ему выговор и назначу исправительные работы.

С другой стороны, в одном он всё-таки прав: надо учиться использовать jQuery (особенно селекторы и события), иначе, как сейчас модно выражаться, нас ждёт большой рефакторинг. Поэтому поступим так: во избежание переписывания кода (а переписывать и так придется довольно много) мы пока внедрение AJAX в админке заморозим, и раз уж аякс для удобства полезен, то будем делать его правильно, чтобы потом не пришлось опять всё переписывать. Уточяю, что надо исправить:
[list=1]
  • Убрать аргументы $onclick и $object из sed_pagination() и sed_pagination_pn(). Да, именно убрать. Обработчик нужно составлять и вешать на это событие при помощи jquery при загрузке документа ($(document).ready), выбрав ссылки паджинации селектором. Возможно, придется при выводе паджинации снабдить её некоторыми аргументами или переменными, содержащими параметры паджинации, но в обработчиках их быть не должно.
  • Далеко не всегда требуется id, чтобы получить искомый элемент. Если структура позволяет это сделать однозначно селектором, то стоит обойтись без id.
  • Второй момент гораздо более болезненный и заключается в "неправильном использовании" самого аякса. Правило звучит так: обновляйте только те данные, которые изменились. В идеале клиент должен чётко понимать, что он меняет в данный момент, сервер должен возвращать изменившиеся данные (данные, а не отображение) в формате JSON или XML, изменения в отображении документа производятся клиентом (например, заменяется содержимое div'а или добавляется новый input). Компромиссное решение - подгружать часть шаблона, которая подвергается изменению. Но никак не всю страницу целиком (даже если она лишена шапки/подвала).
  • May the Source be with you!