#9677: Бар «Двойной инкремент»

« картинки и свежие анекдоты | чат

#9677: Бар «Двойной инкремент»

Нужно было добавить на одну из страниц проекта счётчик просмотров. Самый-самый простой: если кто-то запросил страницу, то увеличиваем на один предыдущее значение в базе. Но такая простая задача заняла ровно один вечер и одно утро, почти заставив меня поверить в сверхъестественное, прежде чем была реализована.

В качестве библиотеки для общения с базой MySQL на сайте используется библиотека ActiveRecord. Соответственно, весь код составил пару строк:

$faq = Faq::find($id);
$faq->views++;
$faq->save();


Получаем нужную запись, увеличиваем значение поля на единицу и сохраняем.

При тестировании выяснилось, что счётчик посещений при заходе увеличивается не на один, а на два. Перепроверил на всякий случай структуру таблицы в базе данных, попробовал на всякий случай обновить значение другим способом (вдруг ошибка в библиотеке?), погуглил по запросу «activerecord double increment problem» — всё без толку. Не понимая, что может быть не так в коде, ушёл спать, так как обычно это помогает — за ночь мозг переосмысляет проблему и утром выдаёт свежее решение.

Решения утром не оказалось, и я уже был готов поверить в сверхъестественное и выводить количество посещений как значение поля, делённое на два, но в очередной раз перезагружая страницу с этим адским счётчиком, в статусной строке браузера я заметил промелькнувшее на мгновение слово «yandex». Да, я тестировал сайт в Firefox с установленной панелью RDS bar, которая дёргала страницу синхронно со мной, увеличивая счетчик ещё на единицу.

Комментарий:

Ваше имя:

Ещё интересное на этом сайте:

#9675: Коричневый картридж
Что нам стоит дом построить?
Компьютеры российской сборки... :)
Краснодарский край глазами немца
Анекдоты и картинки #8661739
Вот такой RSDN
Чёткие пацаны
Езда на скутере без рук. Я не сцу.
...или право имею
Главное меню любого регистратора!
Анекдоты и картинки #8661733
Под крышей дома твоего...
Отцы и дети
Пятничная картинка
День ВДВ, как провокация
Бляццкий мир
Локализация названий фильмов для российского зрителя
Достаточно ли умышленного автогола для победы?
Немного медицинской статистики
Депутат ЛДПР Шингаркин летит на отдых
« все анекдоты и картинки
Рейтинг@Mail.ru