В общем, сидел я как-то над очередным проектом — типичная CRM-система для мелкого бизнеса. Заказчик попросил добавить новую фичу в админку: возможность массово редактировать товары. Казалось бы, что тут сложного? Ну, сделал я форму, написал JS для отправки данных, PHP-скрипт на сервере для обработки. Все работает, но только для 10-15 товаров. Как только пытался обновить 50 или 100, сервер выдавал ошибку 500, или просто ничего не происходило, а браузер зависал намертво.

Я был в шоке. Начал копать. Проверял логи сервера — ничего криминального. Проверял код — все выглядело рабочим. Попробовал уменьшить нагрузку на базу данных, оптимизировал запросы. Ничего не помогало. Грешил на хостинг, на их ограничения. Начал уже клиентке объяснять, что это технические сложности, упирается в лимиты их сервера. Она, естественно, расстроилась

И вот, на исходе пятого дня, когда уже почти отчаялся, вспомнил про одну очень старую статью про лимиты выполнения скриптов в PHP. Дело было не в самом коде, а в том, как я обрабатывал данные. Я отправлял ВСЕ данные сразу одним POST-запросом. Браузер просто не справлялся с таким объемом информации, и скрипт на сервере тоже, видимо, падал где-то на середине из-за таймаутов или ограничений памяти, которые не фиксировались так явно. Решение? Разбил отправку данных на несколько запросов по 10-15 товаров. И о чудо! Все заработало как часы. Сколько же нервов и времени было потрачено зря! Мораль — иногда самые простые, очевидные вещи оказываются самыми сложными в поиске. И как же здорово, что есть форум, где можно потом такие истории рассказать и получить поддержку сообщества.

Опрос

Оцените работу движка

Другие опросы...