Bonjour à tous,
Je reviens sur le sujet car je pensais le sujet clos mais en fait ça recommence sur certains vieilles tablettes un peu poussives !
Après avoir posé les bases de ma reflexion:
- Il arrive que l’appel à jdigiclock ne passe pas car son code contenu dans jquery.jdigiclock.js n’est pas encore chargé
- Ce problème ne concerne que le javascript et le chargement de la page, il dépend donc entièrement des capacités du navigateur client et pas du tout des performances de Jeedom côté serveur.
Parmi les pistes proposées, l’augmentation du délai du setTimeout n’est finalement pas retenu car cela dépend du client et délai « en dur » ne conviens pas toujours. J’ai aussi lu quelque part d’utiliser la fonction JQuery ready() , mais l’idée est de se passer de JQuery.
J’ai donc mis en place une solution alternative, à base de setTimeout mais auto-adaptative: Le principe est de vérifier l’existance de la fonction toute les 100 ms jusquà ce qu’elle soit chargée
<script type="text/javascript">
function waitReady_#id#() {
if (typeof $('#digiclock#id#').jdigiclock != 'function') {
setTimeout(waitReady_#id#, 100);
} else {
$('#digiclock#id#').jdigiclock();
}
}
waitReady_#id#();
</script>
Et là ça fonctionne à tous les coups ^^