2015-07-19 62 views
1

目前我是呼应使用php的html元素。其他时候,我需要使用JavaScript并且创建这些元素dinamically(例如,在移动工作的一些功能不同,并需要在DOM中的一些调整)。不幸的是,我在代码中跨越了两个不同维度的元素(或更多),如果我想更改某些内容,则需要更新所有这些维度。作为一个例子:通过浏览器/服务器语言获得html元素结构的最佳方式是什么?

流长轮询与JavaScript(jQuery的):

...append("<div></div><div></div><div></div><div></div>"); 

PHP回声其他

echo "<div></div><div></div><div></div><div></div>"; 

东西在PHP与每个回波

foreach(...){ 
    echo "<div></div>";echo "<div></div>"; 
    (...) 
    foreach(...){ 
     echo "<div></div>"; 
     echo "<div></div>" 
    } 
} 

如果我想改变这个元素的结构我将不得不改变ALL的3种情况,从4 divs到2 divs或1例如。我到底能够在php和javascript中集中所有这些元素?我想在PHP中有一个字符串,并将其作为模板 JavaScript,但由于串联造成动态类和其他属性时,它会变得混乱。有谁知道另一种方式来做到这一点?

回答

1

PHP

的最有效的方式来输出HTML与PHP是一个变量聚集的一切,一次打印出来。

$html = ''; 

foreach ($rows as $key => $value) { 
    $html .= $value; 
    // You may nest loops as long as you want. 
} 

print $html; 

这里是关于创建一个简单的模板How to make a simple HTML template engine in PHP

的JavaScript 我不能涉及到jsperf.com,因为它是向下的文章。但追加HTML节点的最有效方法是在追加前创建它们。该方法在What is the most efficient way to create HTML elements using jQuery?

// The fastest you could get. 
$(document.createElement('div')); 

// That's for your case. 
$("<div></div><div></div><div></div><div></div>").appendTo(target); 

很难建议在其技术,您应重点说明,这主要取决于你的优先权。有些网站是静态的,并将其HTML存储在静态HTML文件中,例如。 Jekyll

有些网站是如此充满活力,改变了很多用户的输入,对客户端渲染HTML最好的图书馆之一是React.js

如果您的网站是静态的,然后进行简单的模板引擎在PHP中,如果您的网站依赖用户输入很多,然后去React.js,但甚至没有想到用jQuery做前端渲染,你会浪费你的时间。

如果React.js看起来太复杂了,我会建议使用Mustache Templates

+0

我喜欢有关HTML模板的方法。有没有在JavaScript中获取模板文件? – Fane

+0

@Fane是的,有最简单的[小胡子模板](https://github.com/janl/mustache.js)和[jQuery模板](https://github.com/codepb/jquery-template)。 – halfzebra