Публикации за 2025 год
12 материаловПагинация PostgreSQL: когда OFFSET заменить курсором
Когда курсорная пагинация удобнее OFFSET и какие требования она предъявляет к сортировке и интерфейсу.
JavaScriptНативный dialog: открытие, закрытие и возврат фокуса
Открываем нативный dialog, настраиваем закрытие и проверяем, куда возвращается фокус.
MySQLКодировка соединения MySQL: проверка каждого участка обмена
Как найти место, где портится текст: настройки соединения MySQL, байты в таблице или отображение в клиенте.
SEOВнутренние ссылки: понятный анкор и доступный адрес
Как связать статьи между собой, написать понятные анкоры и найти материалы, к которым не ведёт ни одна ссылка.
PHPЗагрузка файла в PHP: проверяем ошибку и выбираем своё имя
Принимаем текстовый файл в PHP: проверяем ошибку загрузки, размер и сохраняем файл под серверным именем.
SEOПереезд адресов: карта соответствий до включения редиректов
Готовим карту старых и новых URL, настраиваем постоянные переходы и проверяем, что читатель попадает в нужную статью.
MySQLВнешний ключ InnoDB: политика удаления должна быть явной
Что произойдёт с заказами при удалении клиента: разбираем RESTRICT, CASCADE и требования внешнего ключа InnoDB.
JavaScriptlocalStorage: читаем настройки как недоверенные данные
Как безопасно прочитать настройки из localStorage и сохранить работоспособность страницы при ошибке хранения.
SEOИзображения в мобильной версии: сохраняем смысл и доступность
Как сохранить схемы и иллюстрации на телефоне, подобрать alt и проверить загрузку изображений.
MySQLВзаимоблокировка InnoDB: повторяем транзакцию целиком
Что делать при deadlock в InnoDB, как повторить транзакцию и почему нельзя бездумно повторять любой запрос.
