Получил очень интереную ситуацию. При внесении записей происходит задвоение записей, причем иногда добавляются пачкой по три штуки. И в общем-то не понятно, куда копать.
Возможно, кто-то встречался с такой ситуацией. Система на хостинге.
Задвоение записей.
- Fait
- Инвестор
- Сообщения: 766
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Задвоение записей.
Бывает, что когда сохраняешь или несколько раз нажимаешь Enter, или от нетерпения обновляет страницу из-за того, что "долго думает"
-
- Сообщения: 391
- Зарегистрирован: 03 мар 2022, 21:40
- Имя: Alex
- Откуда: Россия
- Контактная информация:
Re: Задвоение записей.
В общем, нашлась проблема.
Используем публичную форму, в ней делаем две сущности (не AJAX), их нужно передавать в базу, после нажатия кнопки отправить. Но пользователи их видеть не должны. Поэтому, скрывать их нельзя в настройке - они не передадутся в базу. И таким образом, мы их скрываем с помощью JS - либо style.visibility = 'hidden', либо style.display = 'none'.
Так вот, при большом кол-ве записей в сущности, форма не отрабатывает. Вернее, так - при нажатии ОТправить - данные в базу попадают и они правильные, а вот далее форма не уходит, и начинает выедать всю память php запросом, вылетая с ошибкой 500. Причем сколько не дашь (давали до 2 гигов)- не хватает.
Почему так происходит не понятно, JS команды простые:
document.getElementsByClassName('form-group-807')[0].style.display = 'none';
document.getElementsByClassName('form-group-808')[0].style.display = 'none';
Почему происходит такой дикий скачок потребления памяти - не ясно.
Если JS код убрать - все происходит мнгновенно - и занос данных в базу и перенаправление на конечную страницу.
Может кто-то посоветовать или направить в какую сторону копать?
Используем публичную форму, в ней делаем две сущности (не AJAX), их нужно передавать в базу, после нажатия кнопки отправить. Но пользователи их видеть не должны. Поэтому, скрывать их нельзя в настройке - они не передадутся в базу. И таким образом, мы их скрываем с помощью JS - либо style.visibility = 'hidden', либо style.display = 'none'.
Так вот, при большом кол-ве записей в сущности, форма не отрабатывает. Вернее, так - при нажатии ОТправить - данные в базу попадают и они правильные, а вот далее форма не уходит, и начинает выедать всю память php запросом, вылетая с ошибкой 500. Причем сколько не дашь (давали до 2 гигов)- не хватает.
Почему так происходит не понятно, JS команды простые:
document.getElementsByClassName('form-group-807')[0].style.display = 'none';
document.getElementsByClassName('form-group-808')[0].style.display = 'none';
Почему происходит такой дикий скачок потребления памяти - не ясно.
Если JS код убрать - все происходит мнгновенно - и занос данных в базу и перенаправление на конечную страницу.
Может кто-то посоветовать или направить в какую сторону копать?
- Fait
- Инвестор
- Сообщения: 766
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Задвоение записей.
Попробуйте вот такой JS, у меня работает хорошо:
Код: Выделить всё
$(".form-group-807").hide();
$(".form-group-808").hide();
-
- Сообщения: 391
- Зарегистрирован: 03 мар 2022, 21:40
- Имя: Alex
- Откуда: Россия
- Контактная информация:
Re: Задвоение записей.
Не, не прокатило. Скрывать скрывает, но данные в базу не предает в скрытом режиме. И страница после отправки так же подвисает.Fait писал(а): ↑27 ноя 2023, 20:48 Попробуйте вот такой JS, у меня работает хорошо:Код: Выделить всё
$(".form-group-807").hide(); $(".form-group-808").hide();
Я все-таки подозреваю нагромождение JS скриптов, но где и как это разгрести - не понятно. И через CSS скрыть не получилось. Либо я совсем не правильно все делаю и думаю.