@foreach (var thatOrder in Model)
{
...
<td><script>document.write(["未付款", "等待发货", "已发货", "已签收", "待评价", "已完成", "已取消"][@thatOrder.StatusType]);</script></td>
...
}
1
zjhzxhz 2022-03-08 20:11:53 +08:00
HTML 数据传输爆炸?
|
2
pengtdyd 2022-03-08 20:42:56 +08:00
这个时候我又想起了那句经典名言-----------又不是不能跑!
|
3
DOLLOR 2022-03-08 20:55:20 +08:00
只要用 JS ,必然能举出不利于 SEO 、万一浏览器不支持 JS 之类的万能缺点。
|
4
ChrisFreeMan 2022-03-08 20:58:00 +08:00 via iPhone
很棒的代码,通俗易懂不费一点脑子就能理解
|
6
IvanLi127 2022-03-08 21:57:48 +08:00 via Android 1
我居然觉得。。挺不错的。。不过都模板引擎了,为啥要用 js😥
|
7
CallMeReznov 2022-03-08 22:06:20 +08:00
我可以不可以理解这是一种 GEEK 风?
|
8
codehz 2022-03-08 22:11:51 +08:00 via Android
虽然知道这是 meme ,但还是要提一句:Document write 会严重拖慢渲染速度(((
|
9
xuanbg 2022-03-08 22:21:24 +08:00
代码只要易于维护就是好代码。很多时候性能什么的就根本不是关键。
|
10
tomczhen 2022-03-08 22:23:39 +08:00
基于后端模板渲染的前后端分离项目 :doge:
|
11
agagega 2022-03-08 22:36:01 +08:00
在后端生成动态的 JS 代码发给前端去执行,本来就是前 SPA 时代一种常用的做法啊,Rails 的 SJR 就是这么搞的
|
12
seakingii 2022-03-09 00:01:03 +08:00
这很好啊,可以反没有带脚本引擎的爬虫
|
13
finab 2022-03-09 00:06:11 +08:00 via iPhone
挺好,表驱动替代 if ,当初学设计模式第一课😄
|
14
dcsuibian 2022-03-09 01:10:32 +08:00 2
第一眼以为自己看明白了、通俗易懂,仔细看了一下才发现是怎么回事,感觉楼上的有几楼似乎也没看懂。
本来服务端发给前台的 html 应该是 <td>未付款</td> 这样的。而现在是 <td><script>document.write(["未付款", "等待发货", "已发货", "已签收", "待评价", "已完成", "已取消"][0]);<script></td> 这样的。问题是前一种的“未付款”和后一种的“0”是等同的,而且后一种还要使用 js 再运行一次。吐槽的应该是这个多此一举的做法。 (而且也不光是多此一举,传输的数据多了,浏览器遇到 script 就要暂停执行,对性能不好。document.write 感觉有点危险,当页面加载后如果用这个,就是直接清空。) |
16
cslive 2022-03-09 09:04:22 +08:00
经过 #14 解释看懂了😂
|
17
h82258652 2022-03-09 09:13:55 +08:00
缺点还是有吧😂
相当于把订单的所有业务状态暴露了 |
19
zzlhr 2022-03-09 13:46:30 +08:00
感觉 没毛病啊 ~
|
20
Mateverse 2022-03-09 14:57:40 +08:00 1
咱就说,能不能跑。
|
21
JaxXu 2022-03-09 19:43:11 +08:00
。。。。说实话在干后端的时候,我真的写过这样的代码
|