2008-10-27 6 views
0

MISE À JOUR: Merci à tout le monde pour les réponses. Je n'ai pas réalisé que document.write() était obsolète. Ajoutez une autre encoche à la colonne d'apprentissage. Je vais suivre le conseil affiché ici, mais laisser la question originale afin que les réponses données soient pertinentes dans le contexte de la question initiale.Quelle est la meilleure façon de gérer les longs arguments write()?


Je suis en train de coder des arguments assez longue écriture() et essaie de décider lequel des exemples suivants serait le meilleur à suivre, compte tenu de la syntaxe, la lisibilité et la performance. Devrais-je

a. Conservez-les tous sur une ligne:

<script> 

    var someVariable = "(<a href=\"http://www.example.com\">Link<\/a>)"; 

    document.write("<p>Supergroovalisticprosifunkstication and Supercalifragilisticexpialidocious are very long words.</p>" + someVariable + "<p>Dociousaliexpisticfragilicalirepus is Supercalifragilisticexpialidocious spelled backwards.</p>" + someVariable); 

</script> 

b. Brisez-les en ajoutant des sauts de ligne pour améliorer la lisibilité:

<script> 

    var someVariable = "(<a href=\"http://www.example.com\">Link<\/a>)"; 

    document.write("<p>Supergroovalisticprosifunkstication and Supercalifragilisticexpialidocious are very long words.</p>" 
     + someVariable 
     + "<p>Dociousaliexpisticfragilicalirepus is Supercalifragilisticexpialidocious spelled backwards.</p>" 
     + someVariable); 

</script> 

c. Brisez-les en utilisant plusieurs variables:

<script> 

    var someVariable = "(<a href=\"http://www.example.com\">Link<\/a>)"; 

    var partOne = "<p>Supergroovalisticprosifunkstication and Supercalifragilisticexpialidocious are very long words.</p>"; 
    var partTwo = "<p>Dociousaliexpisticfragilicalirepus is Supercalifragilisticexpialidocious spelled backwards.</p>"; 

    document.write(partOne + someVariable + partTwo + someVariable); 

</script> 

Merci d'avance.

+0

@CodeCurious - Ne supprimez pas la question d'origine, car cela rend difficile la compréhension des réponses. Ce site est destiné à être utile à beaucoup de gens qui viennent après vous, mais il serait difficile de savoir de quoi il s'agissait sans les informations originales. –

Répondre

3

Ma réaction intestinale est: ne faites pas cela. (Votre exemple est pauvre, vous ne devriez pas écrire de gros morceaux de contenu dans votre couche de comportement.)

Chaque fois que vous doivent ce faire, que ce soit concat:

var longVar = 'asdfasdf asdf asdf asdfasdf asdfasdf asdf asdfasdf' + 
    ' fasdf s9d0af asdf asdf0s,dv z-xcfva-sdfmwaert ' + 
    'qersdfasdfasdfasdfasdf'; 
document.write(longVar); 

Ou si elle devient vraiment long , les performances peuvent en bénéficier en utilisant de rejoindre un tableau:

var longVar = [ 
    'asdfasdf asdf asdf asdfasdf asdfasdf asdf asdfasdf', 
    ' fasdf s9d0af asdf asdf0s,dv z-xcfva-sdfmwaert ', 
    'qersdfasdfasdfasdfasdf' 
].join(''); 
document.write(longVar); 
0

je l'écrire est cependant va être plus facile à lire et à maintenir. Ensuite, testez la performance. Si c'est trop lent, essayez d'améliorer progressivement l'algorithme jusqu'à ce que la vitesse soit acceptable. Donc, des idées pour améliorer la performance: - Assurez-vous que le script est minifié. - effectuez autant de pré-traitement sur le serveur et servez le script "traité". En utilisant un outil de minimisation (par exemple, jsMin), vous ne rencontrerez aucun problème en raison de l'espace blanc et des sauts de ligne pour la lisibilité.

0

- et il est un mauvais exemple à utiliser document.write() comme il appartient aux 90ties et a été dépréciée avec l'introduction de HTML4 en 1998 ...

Si vous avez quelque chose Serverside il vaut mieux gérer le code -generation là ...

Sur la question des chaînes concaténer je suis d'accord avec eyelidlessness -)

EDIT (29/10)

en comm ent à un commentaire (j'ai besoin de la notation de code)

<script type="text/javascript"> 
    window.onload = function(){ 
    var newD = document.createElement("div"); 
    newD.appendChild(document.createTextNode("Hello World")); 
    document.getElementsByTagName("body")[0].appendChild(newD); 
    } 
</script> 

De cette façon, tout est inséré dans un document ...

+0

Avec quoi a-t-il été remplacé? – cciotti