Панель администратора Magento 2 висит навсегда, пока страница не обновится

13

С тех пор, как я работал с Magento 2, у меня постоянно возникала эта досадная проблема:

  1. Я вхожу в панель администратора или переключаюсь на другую страницу в панели администратора
  2. Страница начинает загружаться, иногда появляется частично, но затем зависает навсегда (по крайней мере, на несколько минут), иногда она отображается полностью, но браузер по-прежнему показывает «загрузка», и навигация не работает, но я не вижу сбой или работает запросы в консоли браузера.
  3. Если я нажимаю, F5пока он висит, страница загружается почти мгновенно (по крайней мере, большую часть времени)

Похоже, это не связано с какими-либо событиями, потому что я получаю такое поведение даже без внесения каких-либо изменений в админ-панели или в коде, просто навигация. Однако я наблюдал возможную корреляцию с недействительными кэшами .

Есть идеи, что может вызвать эту проблему? Я не верю, что это типичные проблемы с разрешениями или файлами cookie, потому что, вообще говоря, панель администратора работает.

Magento работает в режиме разработчика на Linux.

Фабиан Шменглер
источник
1
Получил ту же самую проблему, никогда не занимал время, чтобы спросить, я рад, что вы сделали. Какую версию PHP вы используете? У меня работает 5.6. Что-то, и я уверен, что это связано. Слышали, что многие люди говорили мне, что M2 невероятно медленен, когда не работает PHP 7
Рафаэль на Digital Pianism
1
PHP 5.5, было бы интересно узнать, если бы у кого-то была эта проблема с PHP 7
Фабиан Шменглер
1
Я использую PHP 7 и сталкиваюсь с той же проблемой
Рина Парех
1
Алан Шторм предложил это, может быть, связано, может быть, нет: magento.stackexchange.com/questions/3720/…
Рафаэль в Digital Pianism
1
Возникла проблема с Magento 2.0.4, работающим на Vagrant (Ubuntu 14.04 / PHP 5.5.9 / MySQL 5.6.28) :(
Сергей Учухлебау

Ответы:

3

ОБНОВИТЬ

Похоже, что обновление Firefox до 46 устраняет проблему!

Оригинальные расследования

Поскольку я также сталкиваюсь с этой досадной проблемой, я решил попробовать.

конфигурация

  • Ubuntu Server 12.4
  • PHP 5.5.30
  • MySQL 5.6.27
  • Magento 2.0.4 свежая установка без образца
  • Режим разработчика с отключенным кешем

Репликация вопроса

На первый взгляд, этот вопрос показался мне совершенно случайным. Однако после нескольких тестов мне удалось выяснить, как именно повторить проблему.

браузер

Во-первых, мне не удалось воспроизвести проблему в Google Chrome, Internet Explorer 11 или старой версии Windows Safari 5.2.17. Я в основном использую FireFox (45.0.2) и редко использую Google Chrome. Даже после того, как я нашел точно, как повторить проблему, я не смог повторить на Chrome.

Вкладки

Вам нужно открыть несколько вкладок в FireFox, чтобы иметь возможность повторить проблему.

меры

  1. Откройте панель администратора и войдите
  2. Как только вы окажетесь на панели инструментов, вы можете нажать на любой пункт меню. Я обычно нажимаю на иконку на приборной панели снова
  3. Как только вы щелкнете по пункту меню, нажмите на одну из открытых вкладок и продолжайте просматривать Интернет, пока вы ждете завершения загрузки панели администратора (на основе вращающегося значка рядом с заголовком вкладки).
  4. К сожалению, вы никогда не загрузите эту страницу.

изучение

Таким образом, кажется, что когда клиент не сфокусирован на вкладке панели администратора, Magento 2, похоже, не загружает все ресурсы для полной загрузки сайта .

Когда я вернулся на страницу панели администратора с бесконечной загрузкой, я заметил, что было успешно загружено много ресурсов.

Как сказал Фабиан, в консоли нет ошибок, нет ресурсов, которые все еще загружаются, и ресурсов, которые не удалось загрузить. Все выглядело, как будто страница закончила загрузку.

Однако, когда я нажал кнопку остановки загрузки Firefox (X в строке URL), я заметил, что на вкладке сети было добавлено несколько ресурсов, которых не было, когда страница находилась в состоянии бесконечной загрузки.

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: приведенный ниже снимок экрана предназначен только для панели инструментов. Я заметил, что после нажатия кнопки «Остановить загрузку» на страницах конфигурации было загружено больше ресурсов.

введите описание изображения здесь

Так что для страницы Dashboard эти ресурсы были добавлены после того, как я нажал кнопку остановки загрузки.

Когда страница загружается нормально, не переключаясь на другую вкладку, следующие ресурсы загружаются после загрузки DOM (я полагаю, через AJAX), вы можете заметить более толстую серую линию между ними и ресурсами выше:

введите описание изображения здесь

Поэтому по какой-то причине следующие ресурсы автоматически загружаются, когда страница находится в состоянии бесконечной загрузки, но загружаются после загрузки DOM, когда страница загружается нормально:

  • /static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-popup.html
  • /static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-slide.html
  • /static/adminhtml/Magento/backend/en_US/Magento_Ui/templates/modal/modal-custom.html
  • /static/adminhtml/Magento/backend/en_US/mage/apply/scripts.js

Вот как далеко я добрался до своей задачи по отладке, я считаю, что мы еще можем многое сделать, чтобы проверить и сузить проблему, но у меня не было времени, чтобы провести дополнительные тесты, я вернусь к этому, когда у меня будет время.

Дальнейшие исследования

В итоге я установил плагин HTTPFox на свой FireFox.

Вот что я получил, когда нажал кнопку «Остановить загрузку» после 1 минуты загрузки (вы можете видеть, что jquery.storageapi.min.jsв столбце времени есть 59 секунд). Выделенные строки - это ресурсы, загруженные после того, как я остановил загрузку:

введите описание изображения здесь

Я попытался обновить библиотеку jquery.storageapi до последней версии, доступной на GitHub, но она, к сожалению, не решает проблему.

Поскольку загрузка фавиконов была следующей в списке, я прокомментировал код, добавив фавикон в заголовок, но это также не решило проблему.

Я попытался отладить domReady.jsфайл, так как его имя звучит так, как будто оно может быть ошибкой, но без шансов.

Также вот два access.logфайла:

До сих пор не могу понять, что здесь происходит.

Обновить

Недавно я сделал два изменения в моей установке:

  • обновить FireFox до 46.0
  • обновить с 2.0.4 до 2.0.5

Теперь я не могу больше повторять проблему.

Рафаэль в цифровом пианизме
источник
1
Вы пытались увидеть, есть ли блокировка одновременного доступа к файлам сеанса из-за этих фоновых вызовов ajax? Некоторые js-файлы используют данные из вызовов ajax и хранят информацию об этом в файлах cookie и наоборот. codingexplained.com/coding/php/… У меня есть Redis и Memcache в dev env, и проблема, похоже, исчезла.
неизвестен
@obscure спасибо за ваш вклад, я проверю это завтра, но я сильно сомневаюсь в этом, так как он работает, когда я остаюсь на вкладке администратора, и нет, когда я просматриваю другую вкладку не Magento во время загрузки
Рафаэль на Digital Pianism
Похоже, что обновление Firefox до 46 версии помогает, и это не связано с версией magento. Не могли бы вы добавить это решение в начало вашего ответа, чтобы оно было видно сразу.
Сергей Учухлебау
@SiarheyUchukhlebau сделано;)
Рафаэль на цифровом пианизме
1
Как бы то ни было, в текущих браузерах и с более новыми версиями Magento этого больше не происходит, поэтому я отмечу это как принятое. Еще раз спасибо за ваши исследования.
Фабиан Шменглер
0

В настоящее время я испытываю именно эту проблему на M2.1.2 с запущенным php 7 на размещенном сервере NGINX (2 ядра, 2 ГБ оперативной памяти), и я использую Chrome (54.0.2840.71 м (64-разрядная версия)).

Я не проводил никакого тестирования, чтобы найти источник проблемы, но так как это была новая настройка сервера, я изначально предполагал, что это мой сервер. Теперь ... не так уверен.

Теперь я должен упомянуть, что я в настоящее время работаю в режиме разработчика, и я еще не скомпилировал свой код. Так что это может быть просто так.

Spyrule
источник
0

как-то связано, когда я обновляю продукт и меняю firefox на новую вкладку, чтобы перемещаться и страница magento теряла фокус, он остается в режиме ожидания, пока не вернется на страницу magento, а затем не завершит обновление этого продукта, это немного раздражает ... потому что Я открываю 3-4 продукта и хочу работать над другими, пока не закончится обновление. знаете решение этой проблемы?

Дэн
источник