У меня есть веб-приложение, написанное на Perl, которое использует Ajax для запроса базы данных MySQL. В Firefox на Mac и Win, Safari на Mac и IE / Edge на Win это работает отлично. В Chrome на Mac или Win Ajax возвращает значение, но значение почти сразу исчезает.
Рабочий процесс заключается в том, что пользователь вводит имя пользователя электронной почты, а функция Javascript "onKeyUp" запускает Ajax. В тех случаях, когда возвращенные результаты исчезают, если я просто возвращаю один символ введенного имени пользователя, а затем снова ввожу его, результаты отображаются снова и не исчезают.
Это не соответствует, но это происходит примерно в 80% случаев.
Вот ссылка на видео проблемы "в действии":
https://haverford.box.com/s/6a3pqetbv1gt6mktzunx7ptuory3yduv)
На видео видно, что при первом введенном имени пользователя оно отображается, а затем исчезает. Я возвращаюсь на один символ имени пользователя, затем имя появляется снова и прилипает. Следующие два имени пользователя не столкнулись с проблемой, но четвертое и последнее имя пользователя возникли. Опять же, когда я удалил и снова ввел последний символ имени пользователя, имя вернулось и осталось.
Другая вещь, которая, возможно, играет роль (хотя я так не думаю), заключается в том, что при вводе имени пользователя другой Ajax-запрос проверяет, есть ли у пользователя «Супервизорная организация», и, если это так, отображает выпадающее меню со всеми оргами этого человека. Если у человека его нет, отображается строка с флажком для запроса новой наблюдательной организации.
Я не знаю, вызывает ли проблема отображение этой новой строки
Проблема, по-видимому, заключается в том, что эта проблема зарегистрирована в stackoverflow:
Ответ AJAX отображается, а затем исчезает в Chrome (июль 2017 г.)
Я пробовал "transform: translateZ (0);" исправить упомянутое в ссылке выше, хотя я не уверен, что знаю, к какому элементу страницы добавить его. Я пробовал tr, th, td и input, но никто не решил.
Я действительно борюсь с этим, поэтому любая помощь будет признательна!
Спасибо!
P.S. Я должен добавить, что, основываясь на комментарии по ссылке выше, я попытался сделать CMD +, а затем CMD - чтобы увеличить или уменьшить масштаб, и в любом случае, я получаю результаты снова. Это заставляет меня думать, что мне нужно сделать «перерисовку» или «перекомпоновку» или что-то вроде веб-страницы после некоторой небольшой задержки после того, как пользователь вводит имя пользователя и результаты возвращаются. Я пробовал около 30 разных способов, ни один из которых не сработал. Я, вероятно, неправильно делаю javascript для этого, поэтому, если кто-то может предоставить очень простой способ перерисовать экран, я был бы очень признателен!