MISE À JOUR
Il semble que la mise à jour de Firefox en 46 corrige le problème!
Enquêtes originales
Comme je suis également confronté à ce problème ennuyeux, j'ai décidé de l'essayer.
Configuration
- Serveur Ubuntu 12.4
- PHP 5.5.30
- MySQL 5.6.27
- Nouvelle installation de Magento 2.0.4 sans échantillon
- Mode développeur avec cache désactivé
Répliquer le problème
À première vue, ce problème m'a paru totalement aléatoire. Cependant, après plusieurs tests, j'ai réussi à savoir exactement comment reproduire le problème.
Navigateur
Tout d'abord, je n'ai pas pu reproduire le problème sur Google Chrome, Internet Explorer 11 ni l'ancien Windows Safari 5.2.17. J'utilise principalement FireFox (45.0.2) et j'utilise rarement Google Chrome. Même après avoir trouvé exactement comment reproduire le problème, je n'ai pas pu répliquer sur Chrome.
Onglets
Vous devez avoir plusieurs onglets ouverts sur FireFox pour pouvoir répliquer le problème.
Pas
- Ouvrez le panneau d'administration et connectez-vous
- Une fois que vous êtes sur le tableau de bord, vous pouvez cliquer sur n'importe quel élément de menu. Je clique habituellement à nouveau sur l'icône du tableau de bord
- Dès que vous avez cliqué sur l'élément de menu, cliquez sur l'un de vos onglets ouverts et continuez à naviguer sur Internet pendant que vous attendez la fin du chargement de votre panneau d'administration (basé sur l'icône de rotation à côté du titre de l'onglet)
- Eh bien, malheureusement, vous n'aurez jamais cette page chargée.
Enquête
Il semble donc que lorsque le client n'est pas concentré sur l'onglet du panneau d'administration, Magento 2 ne semble pas charger toutes les ressources pour que le site Web se charge entièrement .
Ce que j'ai remarqué, quand je suis revenu à la page du panneau d'administration de chargement infini, c'est qu'il y avait beaucoup de ressources qui ont été chargées avec succès.
Comme l'a dit Fabian, aucune erreur dans la console, aucune ressource en cours de chargement et aucune ressource qui n'a pas pu se charger. Tout ressemblait au chargement de la page.
Cependant, lorsque j'ai cliqué sur le bouton d'arrêt du chargement de Firefox (le X dans la barre d'URL), j'ai remarqué que plusieurs ressources ont été ajoutées dans l'onglet réseau qui n'étaient pas là lorsque la page était dans l'état de chargement infini
S'IL VOUS PLAÎT NOTE: la capture d'écran ci-dessous est uniquement pour le tableau de bord, j'ai remarqué que plus de ressources ont été chargées après avoir cliqué sur le bouton d'arrêt du chargement sur les pages de configuration par exemple.
Donc, pour la page Dashboard, ces ressources ont été ajoutées après avoir cliqué sur le bouton Arrêter le chargement.
Lorsque la page est chargée normalement, en ne passant pas à un autre onglet, les ressources suivantes sont chargées après le chargement DOM (je suppose via AJAX), vous pouvez remarquer la ligne grise plus épaisse entre celles-ci et les ressources ci-dessus:
Ainsi, pour une raison quelconque, les ressources suivantes sont automatiquement chargées lorsque la page est dans l'état de chargement infini mais sont chargées après le chargement DOM lorsque la page se charge correctement:
/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
C'est à quel point je suis arrivé dans ma tâche de débogage, je pense qu'il y a encore beaucoup à faire pour tester et affiner le problème mais je n'ai pas eu le temps de faire plus de tests, j'y reviendrai quand j'en aurai le temps.
Enquêtes supplémentaires
J'ai donc fini par installer le plugin HTTPFox sur mon FireFox.
Voici ce que j'ai obtenu lorsque j'ai cliqué sur le bouton d'arrêt du chargement après 1 minute de chargement (vous pouvez voir qu'il y jquery.storageapi.min.js
a 59 secondes dans la colonne de temps). Les lignes en surbrillance sont les ressources qui se sont chargées après avoir arrêté le chargement:
J'ai essayé de mettre à jour la bibliothèque jquery.storageapi avec la dernière version disponible sur GitHub mais cela ne semble malheureusement pas résoudre le problème.
Comme le chargement du favicon était le suivant sur la liste, j'ai commenté le code ajoutant le favicon à la tête, mais cela n'a pas résolu le problème non plus.
J'ai essayé de déboguer le domReady.js
fichier car son nom semble être la faute, mais aucune chance.
Voici également les deux access.log
fichiers:
Je n'arrive toujours pas à comprendre ce qui se passe ici.
Mise à jour
J'ai récemment apporté deux modifications à mon installation:
- mettre à niveau FireFox vers 46.0
- mise à niveau de 2.0.4 vers 2.0.5
Maintenant, je ne peux plus reproduire le problème.