Server.Execute复制动态内容

时间:2012-05-08 00:44:59

标签: loops dynamic asp-classic duplicates

我在ASP中创建了一个页面,用以下代码加载动态内容:

<%
  var1 = int(rnd * 5) + 1
  var2 = int(rnd * 10) + 1
%>
<html>
<body>

what variable 1 is: <%=var1%>
what variable 2 is: <%=var2%>

</body>
</html>

然后我有另一个页面使用Server.Execute使用循环执行前面提到的2次以上的文件。代码如下所示:

<% filename = request.querystring("page") %>

<table class="domtable">
<% for j = 1 to 2%> <%qnumb = qnumb + 1%>
  <tr> 
      <td align="left">
        <%server.execute (filename)%> 
        <% If qnumb < 2 then%>
        <br/><hr><br/>
        <%end if%>
      </td></tr>
  <%next%>
</table>

所以在过去的几个月里,这对我来说非常合适,在两个单独的执行中为两个变量加载不同的数字。然后今天,我复制了我服务器上的一个文件夹,重命名它,现在神奇地说,变量是相同的数字,大约是刷新浏览器10次的9倍。

一个月前我的第二台服务器上的文件发生了同样的情况,我不得不删除第二台服务器上的所有文件,然后从我的第一台服务器下载它们(现在重复一台),然后上传它们回来并修复它。不幸的是,我没有下载我的第一台服务器的整个服务器内容,所以我无法逆转这个过程。所以我不确定这个问题是服务器端,还是与我正在编写的代码有关?我只是不知道为什么它会长时间工作然后停止工作。

我尝试过使用meta no-cache控件。我删除了之前从服务器复制的新文件夹,但是没有用。我还尝试删除过去几天上传的文件,这些文件也没有用。我已经尝试将'filename'加载为数组,例如:

filename(1) = request.querystring("page")
filename(2) = request.querystring("page") 

for j = 1 to 2
  Server.Execute(filename(j))

next

我真的希望有人知道我在这里做错了什么。

- 编辑 -

我也是这样做并得到相同的结果。

<%
'rnd.asp'
pStr = "private, no-cache, must-revalidate" 
Response.ExpiresAbsolute = #2000-01-01# 
Response.AddHeader "pragma", "no-cache" 
Response.AddHeader "cache-control", pStr
server.execute ("rndj.asp")
response.write ("<hr>")
randomize(3)
server.execute ("rndj.asp")
%>

<%
'rndj.asp'
pStr = "private, no-cache, must-revalidate" 
Response.ExpiresAbsolute = #2000-01-01# 
Response.AddHeader "pragma", "no-cache" 
Response.AddHeader "cache-control", pStr
randomize
response.write rnd
response.write "<br>"
response.write rnd
%>

我开始使用下面的代码,它将指定的文件作为纯文本查看并从中删除asp标记,然后使用Execute在原始文件中运行它。这个问题是我所有的页面,我称之为其他资源,替换脚本不会让我在包含行周围添加asp标记。

<%
Dim sTargetFile, sTargetFileContents
Dim oFSO, sContents

Function GetFileContentsForExecution(sTargetFile)

'Obtain a reference to the FileSystemObject
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")

'Obtain the file contents
sContents = oFSO.OpenTextFile(Server.MapPath(".") & "\" & sTargetFile).ReadAll
Set oFSO = Nothing 'reference to the FileSystemObject

'Remove the ASP scripting tags
rand = int(rnd * 2) 
sContents = Replace (sContents, "<" & "%", "")
sContents = Replace (sContents, "%" & ">", "")
GetFileContentsForExecution = sContents
End Function

sTargetFile = "rndj.asp"

for j = 1 to 6

'Get the contents of the file to execute
sTargetFileContents = GetFileContentsForExecution(sTargetFile)
Execute sTargetFileContents

next

if j < 3 then 
response.write ("<br/><hr><br/>")
end if
%>

1 个答案:

答案 0 :(得分:0)

Link to working solution

<%
 'rnd.asp'
 randomize

 application("randomseed") = rnd
 server.execute ("rndj.asp")

 application("randomseed") = rnd
 server.execute ("rndj.asp")

%>

<%
 'rndj.asp'
 randomize application("randomseed")
 response.write rnd
 response.write("<br />")
 response.write rnd
 response.write("<br />")
 response.write("<br />")

%GT;