KraZhtest - Liens utiles - C'est le bordel 01/06/2015 Magnific Popup est un plugin javascript pour créer des "lightbox", pouvant contenir, images, textes, videos ou html. Le bon est qu'il tourne avec zepto.js, donc ça fait un couple 20ko+20ko, c'est acceptable, la paire est toujours plus légere que jquery.js.
Il est très bien noté sur Github, plus de 6000 "stars". Il est assez simple à mettre en place et bien fluide. Testé en situation, vraiment il etait presque "sous le coude"!
En le testant, mon but etait de faire une sorte de gallerie automatique pour video, j'ai remarqué des freezes lors de récursions, de très grosses fuites mémoires comme j'en avais jamais vu, crashant tous les navigateurs et dans certains cas l'OS complet avec souris gelée, CPU à 100%. On observe tout de suite la difference de comportement avec le javascript entre Firefox et Chomium. Firefox met un seul core à 100%, freeze directement tous les onglets et crash. Chromium lui tourne sur plusieurs cores, tous les cores partent aussi à 100%, il laisse quelques secondes pour fermer l'onglet, par contre si cet onglet n'est pas fermé, tout plante aussi.
Sur ces deux navigateurs, si ils ne sont pas fermés dans les 10-20 secondes après le freeze, l'OS plante. (Linux mint 64). Ma machine a 8GO de RAM.
---> En cas de freeze du système sous LInux: CTRL + ALT + BACKSPACE
J'ai arrèté ma gallerie, et creusé un peu plus ces fuites mémoires. :)
Déjà Heureusement, sur Android tout est bien "Sandboxé".."Bac_à_sable_ifié". Ca ne plante pas l'OS, juste l'onglet.
Voici un exemple dans la balise script. Ce script inclus dans une page au chargement va renommer ou ajouter une class à chaque élémént, en attendant un click sur un de ceux-ci. Lors du clic le freeze est lancé.
{code //~ freezer/ Caution should apply!
<html>
<!-- Zepto.js -->
<script src="
https://cdnjs.cloudflare.com/ajax/libs/zepto/1.1.6/zepto.min.js"></script>
<!-- Magnific Popup core JS file -->
<script src="
https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.0.0/jquery.magnific-popup.min.js"></script>
<body>
<div><div>LLoreum click me ipsum</div><br><br><button>Crash_me</button>
<a href="" onclick="" >bla bla</a><p><p></p></p><div><br>Another element whithout id or class on page load, waiting for your click</div>
<script>
function crashjs() {
$("*").attr( "onclick", "crash(this)");
$("*").attr( "class", "open-popup-link");
};
function crash(memory) {
var flood = memory,
huge = flood.attributes,
WastingTimeOnCrapPlugin = huge.length,
attr;
while (WastingTimeOnCrapPlugin--)
{ attr = huge[WastingTimeOnCrapPlugin];
$('.open-popup-link').click();
}
return
}
$("body").attr("onload","crashjs()");
</script></body></html>
code}
Si quelqu'un test sur Windows ou autres, discutons-en le résultat ici:
http://user23.net/bin/?dd6dafbe77eb3b58#RvISVODzD9kkADyBQEjCQdIFHlXJKQDXEcn2yIkhcFg=