Myriad Blog 1.3.0 Thursday, Feb 22nd, 2018 at 02:15pm 

Thursday, May 4th, 2017 at 05:19pm
Myrweb & IE11

 
La cata !
Apparemment, la dernière mise à jour de Windows 10 en a profité pour abîmer un peu plus Internet Explorer 11 qui n'était déjà pas le navigateur le plus brillant sur le marché.
 
Attention, quelques morceaux de technique suivent...
 
Le système que nous utilisons pour stocker les données binaires Myrweb à l'intérieur d'une page Web revient à les inscrire au format "Base64" à l'intérieur d'un paramètre de la division (div). Ceci ne plaît plus à IE11.
 
Lors du chargement de la page, IE11 fait on ne sait quoi, pendant plusieurs secondes (minutes?), avant même de démarrer l'app. Pendant ce temps, il n'utilise pas le processeur, il semble attendre un je-ne-sais-quoi, et en désespoir de cause, finir à contrecoeur par rendre la main et lancer notre app.
Sur tous les autres navigateurs essayés, pas d'attente de plus d'une seconde.
 
Il nous a donc fallu, pour contourner ce nouveau problème, changer pour la troisième fois la manière de stocker ces données.
 
Donc après les avoir mises :  
 
- Dans le contenu d'une "div" cachée (rapide sur IE, Edge & Chrome, lent sur Firefox)
 
- Dans un paramètre de la "div" (rapide partout, sauf maintenant sur IE11)
 
- les voila maintenant dans une balise <script>, sous forme d'une affectation à une variable texte.
 
Cette méthode semble rapide sur IE, Edge, Chrome, Firefox et Android Browser. Reste à la tester sur Safari, Opera, et tout autre navigateur qui nous tombera sous la main
by Olivier Guillion
Comments

Comment from Sylvain Tuesday, May 9th, 2017 at 01:28am
(No subject)
Bonjour,
Ça ne m'étonne pas que dans la balise script ce soit plus optimisé.
En effet, le navigateur et toute opération javascript sur le "DOM" n'a pas d'intérêt à parser cette information (ni texte dans div, ni valeur d'un paramètre).
Dans une balise script, ce n'est pas parsé avec le DOM.
 
Et pour IE (comme Intenses Ennuis) d'une version à l'autre de Windows, la même version d'IE a des différence (d'ailleurs ce n'est pas le même numéro de sous-version).
Celui qui me prétend mordicus que IE10 c'est le même sur XP, 7 ou Win serveur 2012, je lui demande de revenir du pays des Bisounours car c'est totalement faux.

Comment from Olivier Guillion Tuesday, May 9th, 2017 at 11:16am
@Sylvain
Oui, absolument, nous comprenons que ce ne sont pas les mêmes mécanismes de stockage (et c'est pourquoi nous avons pensé à l'essayer).
 
Cependant, la logique, dans notre cas, aurait voulu que nous utilisions le DOM. Il peut y avoir plusieurs morceaux myrweb dans la même page, chacun possédant sa <div> et les données spécifiques qui doivent apparaître dedans. La méthode logique est d'utiliser les paramètres spéciaux "data-xxxx" de la div, censés être stockés tels quels dans le DOM sans analyse du browser.  
 
C'est ce que nous avons fait et qui fonctionnait sans pb jusqu'à la mise à jour d'IE11.
 
Utiliser un script nécessite de déclarer, pour chaque instance de notre app myrweb dans la même page, un nom de variable différent, et de mettre en place des mécanismes permettant de retrouver à quelle div s'applique chaque variable. Ce mécanisme était sous-entendu avec le DOM (dont c'est d'ailleurs l'objet, de mettre en relation un objet avec ses paramètres).
 
Donc, OK, ça marche avec une balise <script>, nous comprenons pourquoi, mais continuons à penser qu'il s'agit d'un ignoble contournement d'un problème qui n'aurait pas dû se poser


Most recent first
Oldest first

Top of page
Legal information Last update:  (c) Myriad