0

我在 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 次变量是相同的数字。

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

我试过使用元无缓存控件。我删除了我之前从服务器复制的新文件夹,但没有用。我还尝试删除过去几天上传的文件,但也没有用。我尝试将“文件名”加载为数组,例如:

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
%>
4

1 回答 1

0

链接到工作解决方案

<%
 '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 />")

%>

于 2012-05-08T17:41:56.510 回答