2016-02-12 144 views
4

所以,我有一个重复多次的div:JS渲染或PHP渲染重复标记

<div class="cmi cm_1_1"> 
    <span class="cm_img"> 
     <i class="icons">icon_1</i> 
    </span> 
    <span class="cm_w"> 
     something 
    </span>        
    <span class="cm_img"> 
     <i class="icons">icon_2</i> 
    </span> 
    <span class="cm_w"> 
     else 
    </span> 
... and so on till cm_1_10 
</div> 

,这将是不同的将图标类型和措辞内的唯一的事情。但标记是相同的。

我正在考虑对此进行js渲染,因此一次又一次地使用相同的标记(我将简单地通过ajax传递措辞)。

或者,我应该渲染服务器端(PHP)的整个事情?

+2

一般来说,这种东西是通过PHP模板输出的。 –

+0

我明白了。我很困惑哪个更有效哈哈。不过谢谢。我想我会尝试使用js渲染,看看是否有任何改变。 – HEYHEY

+2

完全取决于你在做什么。两者都会达到同样的效果。在我看来,PHP通常更容易,但那是因为我更喜欢它。如果你使用AJAX,我相信JS可能会更快,但我并不是100%。无论哪种方式都不会引人注目。除非你在操纵DOM,否则我会为了简单起见而推荐PHP。 –

回答

2

您应该制作一个PHP函数来呈现此类块,除非您打算在文档加载后动态呈现该div。

使用JS进行渲染意味着受到客户端缓存的影响,因此如果您显示某些内容并对其进行更新,则可能是用户在刷新其浏览器缓存之前不会获取最新版本。因此用js渲染可能不是一个好主意。

这里是同类型的前一个问题有一个更详细的回答:PHP vs JavaScript For Dynamic HTML Pages

+0

整个想法是减少初始负载量。我认为php渲染会最有意义(正如其他人指出的那样),因为直到动作被触发,它才会被加载。谢谢你的信息! =) – HEYHEY

1

在我看来,这里最重要的是考虑你创建的页面是静态的还是动态的。如果它是静态的,则转到服务器端解决方案。如果页面加载后内容将发生变化,请转到客户端解决方案(可能使用一些js库),以便只更新已更改的内容。

+0

有道理。我决定和php一起,因为它不会被加载直到动作被触发。谢谢! =) – HEYHEY

1

模板的JS和PHP有不同的缺点。

JS加载速度更快,但如果需要完成很多操作(数百个元素),则可能导致DOM在一瞬间挂起/滞后。优点是可以缓存HTML片段并在下次访问时重复使用,以便仅加载数据。

PHP加载速度较慢,但​​如果您能够将GZIP添加到您的PHP输出中,它将压缩模板化和预呈现的HTML,并且输出将加载速度较快,但仍然会比JavaScript加载速度更慢。

所以这取决于您的使用情况,但都是有效的解决方案。