js 自动生成代码html,动态生成部分html代码:js生成 VS jstl标签生成

很多情况下,我们的项目都需要动态地生成部分的html代码,之前一直用jq生成,不断的append进去,但有一次被项目主管批评过,说用jq生成大量的html代码不好。

而且,我个人感觉,这样做也是不好维护,毕竟维护html代码,需要去jq那里看,而且也不好看。

第二种方法,就是jsp的标签库如jstl,用一个foreach就可以循环生成一些html了,而且好看好维护,但是,有一个缺点就是,jsp标签库本质上是java代码来的,html;而jstl标签生成是:服务器生成html,再将html传到客户端)。

所以,现在就纠结了。

不惜重分求看法。

7c8003838ad3b03b1cc736f534a35664.png

10分

因为js生成是:服务器传js代码过来,客户端生成html;这种方式不太用哦,一般跨域的时候会这样用。一般都是后台取得要显示的数据,页面用标签来进行显示,到页面上要做一些dom操作的时候就用jquery

b829963380d658234a82a0737201a59c.png

引用 1 楼 xinlan1022 的回复:

因为js生成是:服务器传js代码过来,客户端生成html;这种方式不太用哦,一般跨域的时候会这样用。一般都是后台取得要显示的数据,页面用标签来进行显示,到页面上要做一些dom操作的时候就用jquery

dom操作用jq,这个我知道。

如果生成小量的html代码,这个用js生成是可以的;

但我想问的是循环一个重复html代码块的时候(如:我从后台拿到一个list,我要将list里面的对象显示出来),哪种比较好一点,貌似js麻烦但性能好,jstl好用但性能差。(不知道是不是)

求解

7c8003838ad3b03b1cc736f534a35664.png

20分

为了后期维护个人觉得应该使用jstl标签,首先做一个东西,后期维护不可避免,为了后期的维护,那么这样很有必要,其次 ,你说的速度的问题,现在的项目都是部署在服务器的,那么生成代码的速度对于js生成代码的速度显然是很小的了

b829963380d658234a82a0737201a59c.png

引用 3 楼 zy353003874 的回复:

为了后期维护个人觉得应该使用jstl标签,首先做一个东西,后期维护不可避免,为了后期的维护,那么这样很有必要,其次 ,你说的速度的问题,现在的项目都是部署在服务器的,那么生成代码的速度对于js生成代码的速度显然是很小的了

你说的也有道理;

生成的速度是差不多,但是从服务器传到客户端的数据量不同,一个是传js代码,一个是传大量重复的html代码,明显后者的比较多;

不过确实好维护很多,大家都赞成用jstl比较好吗?

7c8003838ad3b03b1cc736f534a35664.png

5分

看个人取舍了

7c8003838ad3b03b1cc736f534a35664.png

10分

需要看你的数据是怎么来的,有些时候用JSTL,有些时候用JQ,的看数据是怎么来的,我们两种方式都用

JSTL一个foreach搞定,JQ不也是一个for搞定吗?

b829963380d658234a82a0737201a59c.png

引用 6 楼 Inhibitory 的回复:

需要看你的数据是怎么来的,有些时候用JSTL,有些时候用JQ,的看数据是怎么来的,我们两种方式都用

JSTL一个foreach搞定,JQ不也是一个for搞定吗?

对,我也是两种混合着用的;

但是就是对于循环的这种情况,我到底用jstl的foreach还是用jq的for呢

b829963380d658234a82a0737201a59c.png

项目管理要综合考虑技术通用性、后续维护成本之类的问题。

比如:

◎ 发明该技术的人如果离职了,其它人接手是否很快很方便?

◎ 该项目以后可不可以交给成本更低的人维护,比如来个大专毕业生?

◎ 经常性的有些需求小变化,是否可以很快调整?调试复杂度高么?部署快么?

7c8003838ad3b03b1cc736f534a35664.png

10分

数据量很大么?

如果很大,大到会影响服务器反应速度,导致网页一直在load, 那么你可以用js去生成,

但是你想过js的维护了么?  可能你自己写的,你能看懂,但是如果换一个人接手,他能看懂么?

如果不是很复杂,建议使用jstl

b829963380d658234a82a0737201a59c.png

引用 9 楼 shijing266 的回复:

数据量很大么?

如果很大,大到会影响服务器反应速度,导致网页一直在load, 那么你可以用js去生成,

但是你想过js的维护了么?  可能你自己写的,你能看懂,但是如果换一个人接手,他能看懂么?

如果不是很复杂,建议使用jstl

有道理

7c8003838ad3b03b1cc736f534a35664.png

10分

补充一句。方案没有绝对优劣,都是为目标服务的。

在你的系统没有很高兴能要求的情况下,尽量选择通用性强、复杂度低、成熟性高 的大众技术方案。

因为没有看到你顶楼提及性能要求,所以我比较赞成你主管的观点。

7c8003838ad3b03b1cc736f534a35664.png

10分

解决可读性。

any HTML code

对于你说的可维护性,jq代码对于前端开发人员来说很容易维护…

可能是因为我不懂jstl,所以这样觉得

b829963380d658234a82a0737201a59c.png

你确定用标签生成 会有性能问题?

b829963380d658234a82a0737201a59c.png

引用 13 楼 wanghualeilei 的回复:

你确定用标签生成 会有性能问题?

也不能说性能有问题,但是我两种都做了,对比了一下,js生成是比jstl生成要快。

b829963380d658234a82a0737201a59c.png

我说的标签不是指jstl   是自定义taglib

b829963380d658234a82a0737201a59c.png

引用 15 楼 wanghualeilei 的回复:

我说的标签不是指jstl   是自定义taglib

jstl标签难道不是taglib标签的一种

7c8003838ad3b03b1cc736f534a35664.png

5分

你说的list 集合 数据量大吗??如果很大很容易导致浏览器崩溃的,另外响应速度也慢,  而且在显示方面你还要先在后台转成json格式再传给前台。。

jstl在服务器上 性能很差吗??可以优化代码或者数据库表的呀。。

b829963380d658234a82a0737201a59c.png

引用 17 楼 ch656409110 的回复:

你说的list 集合 数据量大吗??如果很大很容易导致浏览器崩溃的,另外响应速度也慢,  而且在显示方面你还要先在后台转成json格式再传给前台。。

jstl在服务器上 性能很差吗??可以优化代码或者数据库表的呀。。

你误解我的意思了

客户端浏览网页,需要从服务器获取html、js和css等代码到客户端解析显示吧

先补充一个基础知识:自定义jsp标签(如:jstl)的实质是在jsp上写,也就是servlet根据jsp里面的java逻辑生成html代码返回客户端;jsp里面的html代码也是servlet生成返回到客户端的;

但其实html代码不一定要从服务器返回的,可以根据服务器返回的js,客户端再根据js生成html代码。

所以现在的问题是那部分循环重复的html代码是服务器生成返回(即jstl生成),还是客户端生成(js生成),那个好?

从代码实现上看,jstl更容易看懂,更好维护。

但从返回的html代码量上看,明显客户端生成(即js生成),服务器返回的数据量更少。

b829963380d658234a82a0737201a59c.png

引用 12 楼 xiaopeipei2004 的回复:

解决可读性。

any HTML code

对于你说的可维护性,jq代码对于前端开发人员来说很容易维护…

可能是因为我不懂jstl,所以这样觉得

有道理

请教一下,你那段script怎么用的

b829963380d658234a82a0737201a59c.png

引用 11 楼 ldh911 的回复:

补充一句。方案没有绝对优劣,都是为目标服务的。

在你的系统没有很高兴能要求的情况下,尽量选择通用性强、复杂度低、成熟性高 的大众技术方案。

因为没有看到你顶楼提及性能要求,所以我比较赞成你主管的观点。

有道理

7c8003838ad3b03b1cc736f534a35664.png

10分

$(“”#scriptid””).html();

可以这样使用。

有两个优点,

代码整齐可读性强;

浏览器不加载,不影响性能(与display=none的div等container相比较)

b829963380d658234a82a0737201a59c.png

引用 21 楼 xiaopeipei2004 的回复:

$(“”#scriptid””).html();

可以这样使用。

有两个优点,

代码整齐可读性强;

浏览器不加载,不影响性能(与display=none的div等container相比较)

受教了

b829963380d658234a82a0737201a59c.png

凑个热闹

7c8003838ad3b03b1cc736f534a35664.png

10分

1. 量多时,不建议用JS。 太不直观,难维护了。

2. 建议用标签,一般情况下, 生成html的资源消耗可忽略。 由标签生成HMTL后, 可考虑静态化,那样, 一次生成后,后面直接取就行了。(当然得有一个静态化文件的维护问题)。 另外,可考虑用其他的模板技术,如velocity、freemarker等, 他们在执行上好像是快于JSP。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值