asp-classic – Response.Write和<%=%>
记住这是经典的asp
哪个更好,所有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更为关键,则请优先使用<%=%>,这将使页面结构更加可见。 有时我不得不写这两个版本并且并排比较它们来决定哪一个是更可读的;它是一个最后的手段,但它的时候代码是新鲜的,你会很高兴三个月后,当你必须做出改变。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET 3.5会话ID的大小是多少?
- asp.net – Html.Partial vs Html.RenderPartial&Html.
- asp.net-web-api – 没有实体框架的WebAPI ODATA
- asp.net-mvc-3 – ASP.MVC3 ModelState.IsValid不包括Remot
- asp.net – 如何使用PowerShell了解IIS中托管的特定网站的活
- 创建代码生成器可以很简单:如何通过T4模板生成代码?[上篇
- asp.net – jQuery AJAX vs. UpdatePanel
- asp.net-mvc – 快速ASP.NET路由问题
- ASP.NET MVC4 设置路由的命名空间 namespace
- asp.net-mvc-5 – 在MVC 5期货中找不到Html.Serialize助手
- asp.net-mvc – HtmlHelper NameFor方法
- asp.net-mvc – 汇编绑定重定向不工作
- 使用ASP.NET C#中的文件填充树视图
- asp.net-mvc – 使用FileStreamResult删除临时文
- asp.net-mvc – ValidateInput(false)和AllowHtm
- asp.net – 使用WebAPI时重新验证模型(TryValida
- ASP.NET vNext如何处理config.json中的缓存,压缩
- .resx本地化不能与ASP.Net一起使用 – C#
- iis – 我应该为我的生产服务器使用processModel
- asp.net-mvc – 将角色添加到ADFS IPrincipal