You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Есть проблема, если одномоментно заполнить несколько полей в форме заказа (получатель, телефон, индекс, город, улица, регион и.т.д.)
Такое может случаться, например, при использовании сторонних доставок (Почта Росиии, СДЭК), которые при автокомплите города, одновременно заполняют несколько полей: поля города, индекса и области, либо же это вполне может произойти и просто, если соединение с интернетом нестабильно и одновременно на сервер уйдут несколько запросов, возможно такое может происходить при автозаполнении сохраненных полей браузером, типа подстановки имени и телефона. Когда происходит одновременно несколько запросов к order/add - видимо из-за конкуренции в итоге сохранится лишь одно, максимум 2 поля. Остальное перезапишется предыдущим значением.
Резюме / Summary
Скорей всего проблема в том, что при запросе к order/add перезаписывается вся сессия и получается тот запрос, который выполнился последним, он затрет значения параллельных запросов и поля не сохранятся.
Мы увидим в панели сетевых запросов, что ушло 4 запроса, все они вернули success.
Обновляем страницу и видим, что в лучшем случае будет заполнено лишь одно-два поля, а остальные пустые, т.к. перезатерлись.
Ожидаемое поведение / Expected behavior
Хотелось бы, чтобы все поля правильно сохранялись в заказ, независимо от других запросов, не мешая друг другу.
Может уважаемое сообщество разработчиков подскажет, как с этим можно бороться?
Сделать какую-то очередь запросов, чтобы они шли один за другим, но не просто по setTimeout, а по факту ответа.
The text was updated successfully, but these errors were encountered:
Сообщение об ошибке / Error message
Есть проблема, если одномоментно заполнить несколько полей в форме заказа (получатель, телефон, индекс, город, улица, регион и.т.д.)
Такое может случаться, например, при использовании сторонних доставок (Почта Росиии, СДЭК), которые при автокомплите города, одновременно заполняют несколько полей: поля города, индекса и области, либо же это вполне может произойти и просто, если соединение с интернетом нестабильно и одновременно на сервер уйдут несколько запросов, возможно такое может происходить при автозаполнении сохраненных полей браузером, типа подстановки имени и телефона. Когда происходит одновременно несколько запросов к order/add - видимо из-за конкуренции в итоге сохранится лишь одно, максимум 2 поля. Остальное перезапишется предыдущим значением.
Резюме / Summary
Скорей всего проблема в том, что при запросе к order/add перезаписывается вся сессия и получается тот запрос, который выполнился последним, он затрет значения параллельных запросов и поля не сохранятся.
Шаг для воспроизведения / Step to play
Я смог воспроизвести проблему на демо сайте https://minishop2.com/cart таким кодом в консоли браузера:
Наблюдаемое поведение / Observed behavior
Мы увидим в панели сетевых запросов, что ушло 4 запроса, все они вернули success.
Обновляем страницу и видим, что в лучшем случае будет заполнено лишь одно-два поля, а остальные пустые, т.к. перезатерлись.
Ожидаемое поведение / Expected behavior
Хотелось бы, чтобы все поля правильно сохранялись в заказ, независимо от других запросов, не мешая друг другу.
Environment
Проверялось на версии https://minishop2.com/cart и на сайте с Minishop2 2.4.18-pl и modx 2.7.1
Может уважаемое сообщество разработчиков подскажет, как с этим можно бороться?
Сделать какую-то очередь запросов, чтобы они шли один за другим, но не просто по setTimeout, а по факту ответа.
The text was updated successfully, but these errors were encountered: