2016-02-28 30 views
0

我在使用,而过时的技术项目的工作分配方式。在工作中,我遇到了这个问题。由于我找不到任何W3的推荐,我决定在这里提问。的JavaScript分配的风格VS服务器端脚本

想象一下,一个简单的dinamically生成的表,如下所示:

<table> 
<tbody> 
    <tr id="row1"><!-- More content here --></tr> 
    <tr id="row2"><!-- More content here --></tr> 
    ... 
    <tr id="rowN"><!-- More content here --></tr> 
</tbody> 
</table> 

我想要做的工作是deceively简单:分配给每个表行两个CSS样式类中的一个,我们姑且称之为.evenRow.oddRow

的问题是:我们假定这些类是在外部CSS样式表中定义。我不允许修改该文件,但我有义务将这些类中的一个分配给每个表格行。我无法使用像Less,Sass或Compass这样的CSS工具。只需纯CSS + Javascript/jQuery +服务器端脚本语言。

我发现问题的3个可能的解决方案,但因为我缺乏的网络编程经验,我真的不知道哪一个会是“良好的网络发展实践”方面的佼佼者。从外部样式表到我们的文件

1. 复制CSS样式和喜欢简单的分配规则CSS3:

table tr:nth-child(even) { copied .even property:value pairs } 
    table tr:nth-child(odd) { copied .odd property:value pairs } 

缺点:我们正在做的是真正复制CSS规则,没有提及外部样式表。在更改外部样式表的情况下,我们需要手动修改文档中的规则。为了让事情变得更糟,这在IE8中不起作用(我们有义务支持这个版本)。

2. 分配类的JavaScript:

jQuery("table tr:even").addClass("oddRow") 
    jQuery("table tr:odd").addClass("evenRow") 

疑惑:是否真的正确离开HTML/CSS编写的客户端?执行类似JavaScript的类分配操作是否被认为是一种好的做法?我的意思是,我们可以在生成文档时告诉正确的类,然后将它发送给客户端。没有理由等待。

3. 在服务器端分配类。
例如,为了定义一个取生成所有TR元件的护理的环内的计数器。如果计数器值是偶数,则分配evenRow类并反过来,从而在每次循环迭代中递增计数器。

疑惑:再次:是否认为是一个很好的做法来分配使用服务器端语言CSS类/属性?根据不同的语言,它可能会使代码变得混乱或混乱。此外,我真的不觉得它直观地让服务器端语言照顾表示层的...

所以,我的问题是:有没有对这种情况下,任何官方的建议?这些解决方案中的任何一个都可以被认为是“唯一正确的解决方案”还是“永远不会应用这种解决方案”?

我是相当新的前端开发,所以请饶了我你的答案;)

+0

什么是您的服务器端后端,您是否使用任何模板解决方案? – meskobalazs

+0

我们使用JSP,很少有taglib,主要是scriptlet。 (我知道 - - 我告诉你这是一个相当陈旧的技术)。 – Ismael

+0

那么,那就是你的答案,使用jsp。 – meskobalazs

回答

0

JSP是为演示,所以我真的不知道如何使用它为你的疑惑它的意思是。只是不要在新代码中编写scriptlet,而是使用JSTL。

由于上述原因,另外两个“解决方案”是最好的恕我直言穷人解决方法。