gpt4 book ai didi

asp-classic - 经典 asp -- 最好做大量的 response.write 或使用 <%

转载 作者:行者123 更新时间:2023-12-01 04:08:22 27 4
gpt4 key购买 nike

我正在用经典 ASP 编辑一些遗留代码,这些代码使用了如下所示的大量代码:

pf "<div class=""span-6 last"" style=""margin-top:4px;"">"
pf "<div class=""clean-lightblue-left"" style=""margin-top:4px;"">"
pf "<span style=""float: left; margin-right: 0.3em;"" class=""ui-icon ui-icon-print""></span><a href=""#report"" name=""report"" id=""topic_report_download"">Topic Progress : <b>Download Report</b></a>"
pf "</div></div>"

在这个例子中,pf 是一个效用函数,本质上与 response.write 相同。带回车。

我宁愿做这样的事情:
...asp code
%>
Regular HTML code here
<%
asp code...

我是 asp 的新手,但我听说过上下文切换,而且它可能很昂贵。这两种选择哪个成本更高?

最佳答案

首先让我确定您的具体示例。一系列Response.Write仅携带纯字符串文字的调用将比将完整的 HTML 作为内容包含在脚本代码之外要慢。

由于某些文档(或者可能是历史)中的一些不幸措辞,这种“上下文切换”的想法有点谬误。我们倾向于将 ASP 文件视为 HTML,其中使用 <% script here %> 插入了一些脚本。 .实际上 ASP 文件是一个 脚本包含一些 HTML 的文件。如果您认为它使用 %> content here <% 分隔 html 内容,则更容易推断其发生了什么。 (在文件的开头和结尾处隐含 >%<%)。

当文件被解析为 p-code 时,会创建一个完全可由脚本引擎处理的文件(没有“上下文切换”)。有效 %> .... <%成为 Response.Write 的一种特殊形式,它在 %><% 之间发送内容到缓冲区。不同之处在于字节在原始 ASP 文件中逐字出现,而标准 Response.Write接受来自 VBScript 的 Unicode 字符串,然后必须编码为 Response.CodePage要放入缓冲区的一组字节。

因此,“上下文切换”实际上只是脚本必须写入缓冲区的次数。有很多<% = someExpression %>在您的 HTML 中创建大量缓冲区写入。

如今,除非您生成大量的 HTML(Doozer 提到的文章已有 10 年历史),否则您将启用缓冲。许多写入的成本非常低。减少它们会有所帮助,但必须记住,VBScript 处理字符串接触的方式也并非没有问题。

关于asp-classic - 经典 asp -- 最好做大量的 response.write 或使用 <%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823489/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com