
@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 AV1 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 我居然觉得。。挺不错的。。不过都模板引擎了,为啥要用 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 第一眼以为自己看明白了、通俗易懂,仔细看了一下才发现是怎么回事,感觉楼上的有几楼似乎也没看懂。 本来服务端发给前台的 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 咱就说,能不能跑。 |
21 JaxXu 2022-03-09 19:43:11 +08:00 。。。。说实话在干后端的时候,我真的写过这样的代码 |