Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de rapidite de mon BBcode

il lag.....

    20 février 2006 à 11:35:10

    Salut, j'ai fait un BBcode (que j'ai inventé et que en fait j'ai appelé le eCode), ce eCode est assez complet, mais le problème c'est que lors de la prévisualisation en temps réel, ça lag beaucoup, vraiment beacoup.
    Je crois savoir d'où ça vient, mais je ne sais pas comment le règler.
    Car en fait, la prev auto fait appel à une fonction qui est sur un autre page, qui elle, fait appel à la fonction qui remplace les balises de mon code en vrais balises. Et comme il y a pas mal de balises, je crois que c'est ça qui fait lagger ma page.

    Voici ma page avec les fonctions: (c'est assez long :euh: )
    var timer=0;
    var ptag=String.fromCharCode(5,6,7);


    function  previsualisation() {
    t=document.formulaire.textarea.value
    t=code_to_html(t)
    if (document.getElementById) document.getElementById("prevAuto").innerHTML=t
    if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)

    }


    function automatique() {
    if (document.formulaire.auto.checked)
    {
    previsualisation()

    var prevAuto = document.getElementById("prevAuto");
    prevAuto.style.display = 'block';
    }
    else
    {
    var prevAuto = document.getElementById("prevAuto");
    prevAuto.style.display = 'none';
    }
    }

    function apercu() {
    t=document.formulaire.textarea.value
    t=code_to_html(t)
    if (document.getElementById) document.getElementById("prev").innerHTML=t
    var div = document.getElementById("prev");
    if(div.style.display = 'block')
    {
    prevAuto.style.display = 'none';
    }
    else
    {
    prevAuto.style.display = 'block';
    }
    }


    function code_to_html(t) {
    t=nl2khol(t)
    // balise Gras
    t=deblaie(/(\<\/gras\>)/g,t)
    t=remplace_tag(/\<gras\>(.+)\<\/gras\>/g,'<span style="font-weight: bold;">$1</span>',t)
    t=remblaie(t)

    // balise Italique
    t=deblaie(/(\<\/italique\>)/g,t)
    t=remplace_tag(/\<italique\>(.+)\<\/italique\>/g,'<span style="font-style: italic;">$1</span>',t)
    t=remblaie(t)

    // balise Souligne
    t=deblaie(/(\<\/souligne\>)/g,t)
    t=remplace_tag(/\<souligne\>(.+)\<\/souligne\>/g,'<span style="text-decoration: underline;">$1</span>',t)
    t=remblaie(t)

    // balise Barré
    t=deblaie(/(\<\/barre\>)/g,t)
    t=remplace_tag(/\<barre\>(.+)\<\/barre\>/g,'<span style="text-decoration: line-through;">$1</span>',t)
    t=remblaie(t)

    //position

    //gauche
    t=deblaie(/(\<\/gauche\>)/g,t)
    t=remplace_tag(/\<gauche\>(.+)\<\/gauche\>/g,'<div style="text-align: left;">$1</div>',t)
    t=remblaie(t)

    //centrer
    t=deblaie(/(\<\/centrer\>)/g,t)
    t=remplace_tag(/\<centrer\>(.+)\<\/centrer\>/g,'<div style="text-align: center;">$1</div>',t)
    t=remblaie(t)

    //droite
    t=deblaie(/(\<\/droite\>)/g,t)
    t=remplace_tag(/\<droite\>(.+)\<\/droite\>/g,'<div style="text-align: right;">$1</div>',t)
    t=remblaie(t)

    //taille

    //enorme
    t=deblaie(/(\<\/enorme\>)/g,t)
    t=remplace_tag(/\<enorme\>(.+)\<\/enorme\>/g,'<span style="font-size: xx-large;">$1</span>',t)
    t=remblaie(t)

    //tres grand
    t=deblaie(/(\<\/tgrand\>)/g,t)
    t=remplace_tag(/\<tgrand\>(.+)\<\/tgrand\>/g,'<span style="font-size: x-large;">$1</span>',t)
    t=remblaie(t)

    //grand
    t=deblaie(/(\<\/grand\>)/g,t)
    t=remplace_tag(/\<grand\>(.+)\<\/grand\>/g,'<span style="font-size: large;">$1</span>',t)
    t=remblaie(t)

    //moyen
    t=deblaie(/(\<\/moyen\>)/g,t)
    t=remplace_tag(/\<moyen\>(.+)\<\/moyen\>/g,'<span style="font-size: medium;">$1</span>',t)
    t=remblaie(t)

    //petit
    t=deblaie(/(\<\/petit\>)/g,t)
    t=remplace_tag(/\<petit\>(.+)\<\/petit\>/g,'<span style="font-size: small;">$1</span>',t)
    t=remblaie(t)

    //tres petit
    t=deblaie(/(\<\/tpetit\>)/g,t)
    t=remplace_tag(/\<tpetit\>(.+)\<\/tpetit\>/g,'<span style="font-size: x-small;">$1</span>',t)
    t=remblaie(t)

    //minuscule
    t=deblaie(/(\<\/minuscule\>)/g,t)
    t=remplace_tag(/\<minuscule\>(.+)\<\/minuscule\>/g,'<span style="font-size: xx-small;">$1</span>',t)
    t=remblaie(t)

    //police

    //arial
    t=deblaie(/(\<\/arial\>)/g,t)
    t=remplace_tag(/\<arial\>(.+)\<\/arial\>/g,'<span style="font-family: Arial;">$1</span>',t)
    t=remblaie(t)

    //times new roman
    t=deblaie(/(\<\/times\>)/g,t)
    t=remplace_tag(/\<times\>(.+)\<\/times\>/g,'<span style="font-family: Times New Roman;">$1</span>',t)
    t=remblaie(t)

    //comic sans ms
    t=deblaie(/(\<\/comic\>)/g,t)
    t=remplace_tag(/\<comic\>(.+)\<\/comic\>/g,'<span style="font-family: Comic Sans MS;">$1</span>',t)
    t=remblaie(t)

    //courrier
    t=deblaie(/(\<\/courrier\>)/g,t)
    t=remplace_tag(/\<courrier\>(.+)\<\/courrier\>/g,'<span style="font-family: Courier New;">$1</span>',t)
    t=remblaie(t)

    //impact
    t=deblaie(/(\<\/impact\>)/g,t)
    t=remplace_tag(/\<impact\>(.+)\<\/impact\>/g,'<span style="font-family: Impact;">$1</span>',t)
    t=remblaie(t)

    //verdana
    t=deblaie(/(\<\/verdana\>)/g,t)
    t=remplace_tag(/\<verdana\>(.+)\<\/verdana\>/g,'<span style="font-family: Verdana;">$1</span>',t)
    t=remblaie(t)

    //couleur

    //blanc
    t=deblaie(/(\<\/blanc\>)/g,t)
    t=remplace_tag(/\<blanc\>(.+)\<\/blanc\>/g,'<span style="color: white;">$1</span>',t)
    t=remblaie(t)

    //argent
    t=deblaie(/(\<\/argent\>)/g,t)
    t=remplace_tag(/\<argent\>(.+)\<\/argent\>/g,'<span style="color: silver;">$1</span>',t)
    t=remblaie(t)

    //gris
    t=deblaie(/(\<\/gris\>)/g,t)
    t=remplace_tag(/\<gris\>(.+)\<\/gris\>/g,'<span style="color: grey;">$1</span>',t)
    t=remblaie(t)

    //noir
    t=deblaie(/(\<\/noir\>)/g,t)
    t=remplace_tag(/\<noir\>(.+)\<\/noir\>/g,'<span style="color: black;">$1</span>',t)
    t=remblaie(t)

    //rouge
    t=deblaie(/(\<\/rouge\>)/g,t)
    t=remplace_tag(/\<rouge\>(.+)\<\/rouge\>/g,'<span style="color: red;">$1</span>',t)
    t=remblaie(t)

    //marron
    t=deblaie(/(\<\/marron\>)/g,t)
    t=remplace_tag(/\<marron\>(.+)\<\/marron\>/g,'<span style="color: maroon;">$1</span>',t)
    t=remblaie(t)

    //vert clair
    t=deblaie(/(\<\/vert clair\>)/g,t)
    t=remplace_tag(/\<vert clair\>(.+)\<\/vert clair\>/g,'<span style="color: lime;">$1</span>',t)
    t=remblaie(t)

    //vert
    t=deblaie(/(\<\/vert\>)/g,t)
    t=remplace_tag(/\<vert\>(.+)\<\/vert\>/g,'<span style="color: green;">$1</span>',t)
    t=remblaie(t)

    //jaune
    t=deblaie(/(\<\/jaune\>)/g,t)
    t=remplace_tag(/\<jaune\>(.+)\<\/jaune\>/g,'<span style="color: yellow;">$1</span>',t)
    t=remblaie(t)

    //olive
    t=deblaie(/(\<\/olive\>)/g,t)
    t=remplace_tag(/\<olive\>(.+)\<\/olive\>/g,'<span style="color: olive;">$1</span>',t)
    t=remblaie(t)

    //bleu
    t=deblaie(/(\<\/bleu\>)/g,t)
    t=remplace_tag(/\<bleu\>(.+)\<\/bleu\>/g,'<span style="color: blue;">$1</span>',t)
    t=remblaie(t)

    //bleu marine
    t=deblaie(/(\<\/bleu marine\>)/g,t)
    t=remplace_tag(/\<bleu marine\>(.+)\<\/bleu marine\>/g,'<span style="color: navy;">$1</span>',t)
    t=remblaie(t)

    //rose
    t=deblaie(/(\<\/rose\>)/g,t)
    t=remplace_tag(/\<rose\>(.+)\<\/rose\>/g,'<span style="color: fuchsia;">$1</span>',t)
    t=remblaie(t)

    //violet
    t=deblaie(/(\<\/violet\>)/g,t)
    t=remplace_tag(/\<violet\>(.+)\<\/violet\>/g,'<span style="color: purple;">$1</span>',t)
    t=remblaie(t)

    //turquoise
    t=deblaie(/(\<\/turquoise\>)/g,t)
    t=remplace_tag(/\<turquoise\>(.+)\<\/turquoise\>/g,'<span style="color: aqua;">$1</span>',t)
    t=remblaie(t)

    //bleu-gris
    t=deblaie(/(\<\/bleu-gris\>)/g,t)
    t=remplace_tag(/\<bleu-gris\>(.+)\<\/bleu-gris\>/g,'<span style="color: teal;">$1</span>',t)
    t=remblaie(t)

    //couleur fond

    //blanc
    t=deblaie(/(\<\/blanc fond\>)/g,t)
    t=remplace_tag(/\<blanc fond\>(.+)\<\/blanc fond\>/g,'<span style="background-color: white;">$1</span>',t)
    t=remblaie(t)

    //argent
    t=deblaie(/(\<\/argent fond\>)/g,t)
    t=remplace_tag(/\<argent fond\>(.+)\<\/argent fond\>/g,'<span style="background-color: silver;">$1</span>',t)
    t=remblaie(t)

    //gris
    t=deblaie(/(\<\/gris fond\>)/g,t)
    t=remplace_tag(/\<gris fond\>(.+)\<\/gris fond\>/g,'<span style="background-color: grey;">$1</span>',t)
    t=remblaie(t)

    //noir
    t=deblaie(/(\<\/noir fond\>)/g,t)
    t=remplace_tag(/\<noir fond\>(.+)\<\/noir fond\>/g,'<span style="background-color: black;">$1</span>',t)
    t=remblaie(t)

    //rouge
    t=deblaie(/(\<\/rouge fond\>)/g,t)
    t=remplace_tag(/\<rouge fond\>(.+)\<\/rouge fond\>/g,'<span style="background-color: red;">$1</span>',t)
    t=remblaie(t)

    //marron
    t=deblaie(/(\<\/marron fond\>)/g,t)
    t=remplace_tag(/\<marron fond\>(.+)\<\/marron fond\>/g,'<span style="background-color: maroon;">$1</span>',t)
    t=remblaie(t)

    //vert clair
    t=deblaie(/(\<\/vert clair fond\>)/g,t)
    t=remplace_tag(/\<vert clair fond\>(.+)\<\/vert clair fond\>/g,'<span style="background-color: lime;">$1</span>',t)
    t=remblaie(t)

    //vert
    t=deblaie(/(\<\/vert fond\>)/g,t)
    t=remplace_tag(/\<vert fond\>(.+)\<\/vert fond\>/g,'<span style="background-color: green;">$1</span>',t)
    t=remblaie(t)

    //jaune
    t=deblaie(/(\<\/jaune fond\>)/g,t)
    t=remplace_tag(/\<jaune fond\>(.+)\<\/jaune fond\>/g,'<span style="background-color: yellow;">$1</span>',t)
    t=remblaie(t)

    //olive
    t=deblaie(/(\<\/olive fond\>)/g,t)
    t=remplace_tag(/\<olive fond\>(.+)\<\/olive fond\>/g,'<span style="background-color: olive;">$1</span>',t)
    t=remblaie(t)

    //bleu
    t=deblaie(/(\<\/bleu fond\>)/g,t)
    t=remplace_tag(/\<bleu fond\>(.+)\<\/bleu fond\>/g,'<span style="background-color: blue;">$1</span>',t)
    t=remblaie(t)

    //bleu marine
    t=deblaie(/(\<\/bleu marine fond\>)/g,t)
    t=remplace_tag(/\<bleu marine fond\>(.+)\<\/bleu marine fond\>/g,'<span style="background-color: navy;">$1</span>',t)
    t=remblaie(t)

    //rose
    t=deblaie(/(\<\/rose fond\>)/g,t)
    t=remplace_tag(/\<rose fond\>(.+)\<\/rose fond\>/g,'<span style="background-color: fuchsia;">$1</span>',t)
    t=remblaie(t)

    //violet
    t=deblaie(/(\<\/violet fond\>)/g,t)
    t=remplace_tag(/\<violet fond\>(.+)\<\/violet fond\>/g,'<span style="background-color: purple;">$1</span>',t)
    t=remblaie(t)

    //turquoise
    t=deblaie(/(\<\/turquoise fond\>)/g,t)
    t=remplace_tag(/\<turquoise fond\>(.+)\<\/turquoise fond\>/g,'<span style="background-color: aqua;">$1</span>',t)
    t=remblaie(t)

    //bleu-gris
    t=deblaie(/(\<\/bleu-gris fond\>)/g,t)
    t=remplace_tag(/\<bleu-gris fond\>(.+)\<\/bleu-gris fond\>/g,'<span style="background-color: teal;">$1</span>',t)
    t=remblaie(t)




    //email
    t=deblaie(/(\<\/email\>)/g,t)
    t=remplace_tag(/\<email=(.+)\>(.+)\<\/email\>/g,'<a href="mailto:$1" target="_blank" title="$1">$2</a>',t)
    t=remblaie(t)

    //lien 
    t=deblaie(/(\<\/lien\>)/g,t)
    t=remplace_tag(/\<\lien=(.+)\>(.+)\<\/lien\>/g,'<a href="$1" target="_blank" title="$1">$2</a>',t)
    t=remblaie(t)


    //Citation
    t=deblaie(/(\<\/citation\>)/g,t)
    t=remplace_tag(/\<citation (.*)\>(.+)\<\/citation\>/g,'<div style="margin: auto;border: 1px solid #000000; width: 70%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px; padding: 10px;" align="center"><strong >Citation $1 :</strong><br/><em>$2</em></div>',t)
    t=remblaie(t)

    //Image
    t=deblaie(/(\<\/image\>)/g,t)
    t=remplace_tag(/\<image\>(.+)\<\/image\>/g,'<img src="$1" alt="$1"/>',t)
    t=remblaie(t)

    //liste
    t=deblaie(/(\<\/liste\>)/g,t)
    t=remplace_tag(/\<liste\>(.*)\<\/liste\>/g,'<ul>$1</ul>',t)
    t=remblaie(t)

    //liste 2
    t=deblaie(/(\<\/puce\>)/g,t)
    t=remplace_tag(/\<puce\>(.+)\<\/puce\>/g,'<li>$1</li>',t)
    t=remblaie(t)


    //tableau
    t=deblaie(/(\<\/tableau\>)/g,t)
    t=remplace_tag(/\<tableau\>(.+)\<\/tableau\>/g,'<table style="margin: auto;border-collapse: collapse;">$1</table>',t)
    t=remblaie(t)

    //titre
    t=deblaie(/(\<\/titre\>)/g,t)
    t=remplace_tag(/\<titre\>(.+)\<\/titre\>/g,'<caption style="margin: auto;margin-bottom: 20px;">$1</caption>',t)
    t=remblaie(t)

    //ligne
    t=deblaie(/(\<\/ligne\>)/g,t)
    t=remplace_tag(/\<ligne\>(.+)\<\/ligne\>/g,'<tr style="border: 1px solid black;border-collapse: collapse;padding: 5px;">$1</tr>',t)
    t=remblaie(t)

    //colonne
    t=deblaie(/(\<\/cellule\>)/g,t)
    t=remplace_tag(/\<cellule\>(.+)\<\/cellule\>/g,'<td style="border: 1px solid black;padding: 5px;border-collapse: collapse;">$1</td>',t)
    t=remblaie(t)



    //info
    t=deblaie(/(\<\/information\>)/g,t)
    t=remplace_tag(/\<information\>(.+)\<\/information\>/g,'<span style="color: green;">$1</span>',t) //<=== METTRE UNE IMAGE
    t=remblaie(t)

    //question
    t=deblaie(/(\<\/question\>)/g,t)
    t=remplace_tag(/\<question\>(.+)\<\/question\>/g,'<span style="color: blue;">$1</span>',t) //<=== METTRE UNE IMAGE
    t=remblaie(t)

    //remarque
    t=deblaie(/(\<\/remarque\>)/g,t)
    t=remplace_tag(/\<remarque\>(.+)\<\/remarque\>/g,'<span style="color: orange;">$1</span>',t) //<=== METTRE UNE IMAGE
    t=remblaie(t)

    //important
    t=deblaie(/(\<\/important\>)/g,t)
    t=remplace_tag(/\<important\>(.+)\<\/important\>/g,'<span style="color: red;">$1</span>',t) //<=== METTRE UNE IMAGE
    t=remblaie(t)


    // smilies Smile <!-- on oublie pas les smilies -->
    t=remplace_tag(/:D/g,'<img src="http://siteduzero.com/Templates/images/smilies/smile.png" alt="" />',t) //chager ladresse
    t=remblaie(t)
    t=unkhol(t)
    t=nl2br(t)
    return t
    }
    // tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP
    function deblaie(reg,t) {
    textarea=new String(t);
    return textarea.replace(reg,'$1\n');
    }
    function remblaie(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,'');
    }
    function remplace_tag(reg,rep,t) {
    textarea=new String(t);
    return textarea.replace(reg,rep);
    }
    function nl2br(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,'<br/>');
    }
    function nl2khol(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,ptag);
    }
    function unkhol(t) {
    textarea=new String(t);
    return textarea.replace(new RegExp(ptag,'g'),'\n');
    } 


    Voilà je sais que la structure de mon eCode ressemble beaucoup à celle du SDZ mais c'est parceque je n'ai rien trouvé d'autre et je trouvais ces balises pratiques.
    Donc voilà, c'est ce code là qui fait tout lagger, est-ce que vous pourriez me dire comment faire pour que ça ne lag plus?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter

    probleme de rapidite de mon BBcode

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown