web-dev-qa-db-fra.com

Solution de performance Shortcode

J'ai un site critique en termes de performances. En faisant des codes abrégés, j'ai pensé au temps nécessaire au serveur pour analyser et renvoyer le contenu, au lieu de permettre à du HTML (<div class="redletter">) de passer par l'éditeur TinyMCE. En attendant, mon code pour cela est:

// [redletter]Content[/redletter]
add_shortcode('redletter', 'redletter_do');
function redletter_do($atts, $content = null)  {
    return '<div class="redletter"' . do_shortcode($content) . '</div>';
}

Performances critiques ou non, je pense que rien ne pourrait battre un bouton permettant à un <div> de passer directement dans l'éditeur visuel et de le montrer, comme c'est le cas lorsque vous appuyez sur le bouton [B] pour créer <strong>.

Donc, je suis entre garder le shortcode, ou créer un bouton TinyMCE pour <div class="redletter"> et afficher le résultat dans l'éditeur visuel.

3
DarkGhostHunter

Je dirais que faire le bouton - mais pas pour des raisons de performance.

Je pense que si vous le comparez, vous constaterez que toute surcharge de performances ajoutée en exécutant une fonction simple comme celle-ci (celle qui effectue un simple concaténage de chaînes) est assez minime. Ou, au moins, jusqu’à des fractions de fractions de seconde sur un serveur décent.

Si vous êtes très sollicité et que les performances de ce niveau vous inquiètent, vous devriez probablement vous concentrer sur une bonne couche de mise en cache et sur un serveur rapide. Nous avons récemment joué avec une configuration nginx/varnish, ce qui a boosté les performances à un degré incroyable. ( Voir ce gars, qui l'a très bien fonctionné )

Bien sûr, ce n’est pas une solution miracle, et vous devriez toujours veiller à réduire le nombre de requêtes exécutées, de requêtes effectuées, etc. Je comprends donc votre intention. Le type de fonctionnalité que vous tentez avec cette question est admirable (un bouton TinyMCE représente une expérience utilisateur BEAUCOUP supérieure à celle d'un code abrégé), mais je ne pense pas que cela aidera beaucoup en termes de performances.

3
MathSmath

Eh bien, en termes de performances, il est toujours préférable d'éviter toute "post-manipulation" dans la colonne post_content de votre base de données.

Le problème ici n’est qu’une solution: la création d’un plug-in TinyMCE, une douleur totale dans le cul mais à un prix abordable. De cette façon, vous pouvez éditer directement votre code HTML et éviter les manipulations effectuées par des balises courtes. C'est comme la manière difficile mais correcte d'accélérer les performances.

Et bien, j'ai créé un minuscule plugin TinyMCE.

1
DarkGhostHunter