4

维护一个屎山时看到了模板渲染的最佳实践(误),竟然说不出缺点

 2 years ago
source link: https://www.v2ex.com/t/838933
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

维护一个屎山时看到了模板渲染的最佳实践(误),竟然说不出缺点

  theklf4 · 20 小时 36 分钟前 · 2355 次点击
@foreach (var thatOrder in Model)
{
    ...
    <td><script>document.write(["未付款", "等待发货", "已发货", "已签收", "待评价", "已完成", "已取消"][@thatOrder.StatusType]);</script></td>
    ...
}
20 条回复    2022-03-09 14:57:40 +08:00

zjhzxhz

zjhzxhz      20 小时 16 分钟前

HTML 数据传输爆炸?

pengtdyd

pengtdyd      19 小时 45 分钟前

这个时候我又想起了那句经典名言-----------又不是不能跑!

DOLLOR

DOLLOR      19 小时 33 分钟前

只要用 JS ,必然能举出不利于 SEO 、万一浏览器不支持 JS 之类的万能缺点。

ChrisFreeMan

ChrisFreeMan      19 小时 30 分钟前 via iPhone

很棒的代码,通俗易懂不费一点脑子就能理解

gowk

gowk      19 小时 25 分钟前

ASP.NET Razor View

IvanLi127

IvanLi127      18 小时 30 分钟前 via Android   ❤️ 1

我居然觉得。。挺不错的。。不过都模板引擎了,为啥要用 js😥

CallMeReznov

CallMeReznov      18 小时 22 分钟前

我可以不可以理解这是一种 GEEK 风?

codehz

codehz      18 小时 16 分钟前 via Android

虽然知道这是 meme ,但还是要提一句:Document write 会严重拖慢渲染速度(((

xuanbg

xuanbg      18 小时 7 分钟前

代码只要易于维护就是好代码。很多时候性能什么的就根本不是关键。

tomczhen

tomczhen      18 小时 4 分钟前

基于后端模板渲染的前后端分离项目 :doge:

agagega

agagega      17 小时 52 分钟前

在后端生成动态的 JS 代码发给前端去执行,本来就是前 SPA 时代一种常用的做法啊,Rails 的 SJR 就是这么搞的

seakingii

seakingii      16 小时 27 分钟前

这很好啊,可以反没有带脚本引擎的爬虫

finab

finab      16 小时 22 分钟前 via iPhone

挺好,表驱动替代 if ,当初学设计模式第一课😄

dcsuibian

dcsuibian      15 小时 17 分钟前   ❤️ 2

第一眼以为自己看明白了、通俗易懂,仔细看了一下才发现是怎么回事,感觉楼上的有几楼似乎也没看懂。

本来服务端发给前台的 html 应该是

<td>未付款</td>

这样的。而现在是

<td><script>document.write(["未付款", "等待发货", "已发货", "已签收", "待评价", "已完成", "已取消"][0]);<script></td>

这样的。问题是前一种的“未付款”和后一种的“0”是等同的,而且后一种还要使用 js 再运行一次。吐槽的应该是这个多此一举的做法。
(而且也不光是多此一举,传输的数据多了,浏览器遇到 script 就要暂停执行,对性能不好。document.write 感觉有点危险,当页面加载后如果用这个,就是直接清空。)

vibbow

vibbow      7 小时 58 分钟前

@dcsuibian 现实情况是,使用古典 JavaScript 的页面的速度通常都比使用模板引擎的要快 😂

cslive

cslive      7 小时 24 分钟前

经过 #14 解释看懂了😂

h82258652

h82258652      7 小时 14 分钟前

缺点还是有吧😂
相当于把订单的所有业务状态暴露了

sunhelter

sunhelter      6 小时 22 分钟前

#14 解释通俗易懂,还在想那个 @thatOrder.StatusType 是什么意思

zzlhr

zzlhr      2 小时 42 分钟前

感觉 没毛病啊 ~

Mateverse

Mateverse      1 小时 30 分钟前

咱就说,能不能跑。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK