哪个是处理long write()参数的最佳方法?

时间:2008-10-27 02:27:52

标签: javascript readability

更新:感谢大家的回复。我没有意识到document.write()已被弃用。在学习列中添加另一个档位。我将接受这里发布的建议,但保留原始问题,以便在原始问题的背景下给出答案。


我正在编写一些相当长的write()参数,我正在尝试确定以下哪个示例最适合,考虑语法,可读性和性能。我应该

一个。将它们全部放在一行:

<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>

湾通过添加换行符来解决这些问题,以提高可读性:

<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>

℃。通过使用多个变量来解决它们:

<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>

提前致谢。

3 个答案:

答案 0 :(得分:3)

我的直觉反应是:不要那样做。 (您的示例很糟糕,您不应该在行为层中编写大量内容。)

每当必须执行此操作时,请使用concat:

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

或者,如果它变得非常长,使用加入数组可以提高性能:

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

答案 1 :(得分:0)

我会写它但是最容易阅读和维护。然后测试性能。如果速度太慢,请尝试逐步改进算法,直到速度可以接受为止。

所以提高绩效的想法:   - 确保脚本缩小。   - 在服务器上执行尽可能多的预处理并提供“已处理”脚本。

通过使用缩小工具(例如jsMin),您可以通过使用空格和换行符来解决任何问题。

答案 2 :(得分:0)

- 这是使用document.write()的一个不好的例子,因为它属于90年代,并且在1998年引入HTML4时被弃用了......

如果你有任何服务器端,最好在那里处理代码生成......

关于连接字符串的问题,我同意无眼线! - )

编辑(29/10)

作为对评论的评论(我需要代码符号)

<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>

这样就可以在文档中插入任何内容......