Тема: LiveMarks 4.3
Показать сообщение отдельно
  #1 (permalink)  
Старый 08.09.2011, 14:56
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

LiveMarks 4.3
Я сделал новую версию журнальчика)

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

Итак, сначала я доделал отправку данных через POST. Мне понравилось
Потому что быстро, потому что лог не засоряет, в общем, много почему)

Прогрессбар я убрал до поры, и назвал эту версию 4.2

Версию 4.3 я сделал уже сегодня днём. Она порадует (потенциальных пользователей я имею в виду) неопределённым прогрессбаром, который будет скрашивать ожидание тех, у кого медленный коннект, а также тех, кто сделал кучу изменений в таблице (500 запросов и более уже дают 3-4 секунды полюбоваться индикатором даже на локалке).

Что особенно важно, я прикрутил новую логику внесения изменений. Работает она совсем просто: после загрузки ставит всем текстовым полям атрибут с начальным значением. Далее, при потере фокуса, после проверок формата, производится, как и раньше, конструирование псевдозапроса (на основе которого на сервере будет создан MySQL запрос) и проверка на наличие такого же запроса (возможно с другим значением) в массиве. То есть сверяются начальные куски строк.

Ранее, в случае нахождения, старый запрос просто перезаписывался в массиве (чтобы одинаковые значения в базе по несколько раз не менять), а новый не добавлялся.

Теперь всё хитрее. В случае нахождения запроса в массиве, JS код сверяет текущее значение с начальным. Если вдруг оказалось, что значение поля стало прежним (то есть тем, которое сейчас находится в БД), запрос чистится. Потом, перед передачей, мне пришлось ввести ряд дополнительных проверок, чтобы исключить передачу на сервер строк, состоящих исключительно из запятых-разделителей.

В случае же, если запрос не найден, он добавляется - но теперь только в том случае, если значение поля не равно начальному (то есть теперь можно гулять фокусом по полям сколько угодно, и это не спровоцирует не только отправки данных потом, но даже не вызовет пополнение массива запросов в текущий момент.

Вот так.

Последний раз редактировалось popov654, 08.09.2011 в 14:58.
Ответить с цитированием