Skip to content

fix(vue): stale response race в OrdersGrid и CategoryProductsGrid - #468

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-385
Open

fix(vue): stale response race в OrdersGrid и CategoryProductsGrid#468
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-385

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

При быстрой смене страницы, сортировки или фильтра in-flight ответ более раннего запроса мог перезаписать состояние грида. Добавлен composable useStaleRequestGuard: AbortController отменяет предыдущий fetch, sequence id + isCurrent() игнорирует устаревшие ответы, runGuarded() централизует loading и подавление AbortError.

Подключено в OrdersGrid.loadOrders и CategoryProductsGrid.loadProducts. В request.js — поддержка options.signal и проброс AbortError без обёртки в RequestError.

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #385

Как это было протестировано?

cd vueManager
npm run test:smoke   # exit 0, 6 tests (useStaleRequestGuard)
npm run lint:ci      # exit 0

CI job vue дополнен шагом npm run test:smoke.

  • Ручное тестирование (быстрая пагинация/фильтры при Slow 3G)
  • Автоматические тесты
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: branch fix/issue-385
  • MODX: n/a
  • PHP: n/a

Скринshоты (если применимо)

До После
последний UI ≠ последний запрос применяется только актуальный ответ

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы — не требуется
  • PHPStan — PHP не затронут
  • ESLint проходит без ошибок
  • Обновлён CHANGELOG.md — по политике релиза

Дополнительные заметки

@Ibochkarev Ibochkarev added bug Something isn't working javascript Pull requests that update javascript code priority: medium Средний приоритет labels Jul 28, 2026
@Ibochkarev
Ibochkarev force-pushed the fix/issue-385 branch 2 times, most recently from ab1f0db to 7967014 Compare July 29, 2026 11:31
Add useStaleRequestGuard with AbortController, sequence checks, and
runGuarded(); wire OrdersGrid and CategoryProductsGrid list loaders.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working javascript Pull requests that update javascript code priority: medium Средний приоритет

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] OrdersGrid/CategoryProductsGrid: stale response race при быстрой смене фильтра

1 participant