Javascript更好的HTML编写方法

时间:2011-07-29 23:21:07

标签: javascript html embed param

这个问题是关于为视频播放器编写HTML代码的Javascript。我认为有一些更快的方法(document.createElement,Jquery等)。请告诉一些更好,更快的方法。提前致谢

    function createPlayer(videoSource){
            document.writeln("<div id=\"player\">");
            document.writeln("<object width=\"489\" height=\"414\" >");
            document.writeln("<param name=\"player\" value=\"bin-    debug/FlexPlayer.swf\">");
           //etc
            document.writeln("</embed>");
            document.writeln("</object>");
            document.writeln("</div>");               
    }

4 个答案:

答案 0 :(得分:3)

document.createElement一起生活将是最快的。但是,如果你的标记很大,那么这种方式就会成为维护的噩梦。此外,要“想象”事物并不容易。

在这些情况下,您可能希望与客户端模板解决方案(例如jQuery模板或下划线模板或John Resig的微模板)进行权衡。

另一个性能提升是构建整个标记并在最后添加到DOM(首先添加子项,然后将父项添加到DOM)。

答案 1 :(得分:1)

你可以试试这个:

function createPlayer(videosource){
    var div = document.createElement('div');

    div.innerHTML = '<object width=\"489\" height=\"414\" >' + 
        '.......'
    document.body.appendChild(div);
}

答案 2 :(得分:1)

我知道有一个jQuery函数可以让你创建一个模板HTML片段,你可以在以后只用1或2行代码重复使用,添加变量并将其附加到页面。

为此你需要jQuery(最新应该没问题)http://jquery.com/

tmpl函数的文档位于:http://api.jquery.com/jquery.tmpl/

有关如何使用它的详细信息,你最好阅读jQuery文档的一个例子,我自己没有使用它,所以不能给你一个很好的例子,但文档网站上有很多东西。< / p>

希望这有帮助

编辑: 实现该功能的资源消耗较少的方法是,而不是将每一行依次写入文档,只需将它们全部附加到字符串中,然后在完成时写入一次。

例如:

function createPlayer(videoSource){
            var html="<div id=\"player\">";
            html+="<object width=\"489\" height=\"414\" >";

            //etc            
            document.writeln(html);               
    }

这更快,因为在文档中写一行比使用在内存中附加字符串更多的资源。对于MAXIMUM SPEED,您甚至可以在函数外部声明html var,并将其设置为标记为一个长字符串,然后将其写入 - 即

var html;
 function createPlayer(videoSource){
                html="<div id=\"player\"><object width=\"489\" height=\"414\" >"; //and so forth           

                document.writeln(html);               
        }

如果你可以证明更大的下载量,我会尽可能地使用jQuery解决方案,它通常更容易管理 - 我过去做过很多脚本生成的HTML,很快就会变得很难维护。祝你好运

答案 3 :(得分:1)

对于一般操作和添加HTML,我建议使用jQuery。它使这个过程更容易,更快。

您可以在此处找到更多相关信息: