Désolé d’intervenir mais çà fait plusieurs fois que je tombe de ma chaise en voyant vos codes de widgets, sur différents posts …
Alors sans vouloir tout optimiser à mort, un truc quand même :
$('div.conso#id#').css('width','90px');
$('div.conso#id#').css('min-height','80px');
=> sachez que là, vous ciblez le même élément, mais vous demandez à jquery de parcourir tout le DOM pour retrouver deux fois la même chose !
$('div.conso#id#').css({
'width' : '90px',
'min-height' : '80px'
})
De même, des fois vous avez 20 lignes dans le genre:
$('span.statedec1_conso#id#').css('font-size','20px');
$('span.statedec2_conso#id#').css('font-size','20px');
$('span.statedec3_conso#id#').css('font-size','20px');
Vous parcourez donc 20 fois le DOM, la page entière donc, avec tout les widgets etc, pour en trouver un.
Sachez pourtant que chaque commande est unique dans le DOM, de part son id :
<div class="cmd cmd-widget" ... data-cmd_id="#id#" ...>
donc:
let cmd = $('.cmd[data-cmd_id=#id#]')
cmd.find('.conso#id#').css({
'width' : '90px',
'min-height' : '80px'
)
cmd.find('.statedec1_conso#id#').css('font-size','20px')
cmd.find('.statedec2_conso#id#').css('font-size','20px')
cmd.find('.statedec3_conso#id#').css('font-size','20px')
Ce sera juste 20 fois … plus rapide ! Multiplié par le nombre de widget bien sûr …
Et dans ce cas, comme on part d’un cmd id unique, pas besoin de #id# partout dans les class, çà accélèrera aussi le replace
Je veux pas vous embêter hein, mais on se prend la tête pour optimiser le core, donc si les widgets tiers peuvent l’être un minimum ce serait cool.