哪个更好,所有HTML包含在Response.Write语句中,或通过<%=%> ;.将变量插入到HTML中。
例如
Response.Write "<table>" & vbCrlf Response.Write "<tr>" &vbCrLf Response.Write "<td class=""someClass"">" & someVariable & "</td>" & vbCrLf Response.Write "</tr>" & vbCrLf Response.Write "</table>" & vbCrLf
VS
<table> <tr> <td class="someClass"><%= someVariable %></td> </tr> </table>
我主要从性能的角度来看,当有多个变量插入时,哪个服务器的影响最小?
如果没有技术上的差异,一个人的论据是什么呢?
解决方法
无论如何,没关系。在一天结束的时候,所有的ASP都只是执行一个脚本! ASP解析器获取页面,并将<%= expression%>进入直接脚本调用,每个连续的HTML块成为Response.Write的一个巨大调用。生成的脚本将被缓存和重用,除非页面在磁盘上更改,这会导致重新计算缓存的脚本。
现在,太多使用<%=%>导致现代版的“意大利面条”:可怕的“标签汤”。你不能做出逻辑的头部或尾部。另一方面,Response.Write的过多使用意味着你将永远不能看到该页面,直到它呈现。使用<%=%>当适当获得最好的两个世界。
我的第一条规则是把“变量文本”的比例注意到“静态文本”。
如果您只有几个地方有可替换的可变文本,则<%=%>语法非常小巧可读。然而,由于<%=%>开始累积,它们掩盖越来越多的HTML,同时HTML掩盖了越来越多的逻辑。作为一般规则,一旦你开始采取循环,你需要停止并切换到Response.Write。
有没有很多其他硬和快速的规则。你需要决定你的特定页面(或页面的一部分)哪一个更重要,或者自然更难理解,或更容易打破:你的逻辑或你的HTML?它通常是一个或另一个(我已经看到数以百计的两种情况)
如果你的逻辑更为关键,你应该对Response.Write加重;它会使逻辑脱颖而出。如果您的HTML更为关键,则请优先使用<%=%>,这将使页面结构更加可见。
有时我不得不写这两个版本并且并排比较它们来决定哪一个是更可读的;它是一个最后的手段,但它的时候代码是新鲜的,你会很高兴三个月后,当你必须做出改变。