Я создал страницу в 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>
Так что за последние пару месяцев у меня это отлично работало, загружая разные числа для обеих переменных при двух отдельных исполнениях. Затем сегодня я продублировал папку на своем сервере, переименовал ее, и теперь волшебным образом переменные имеют одно и то же число примерно в 9 из 10 раз, когда браузер обновляется.
Это случилось со мной с теми же файлами на моем втором сервере месяц назад, и мне пришлось удалить все файлы со второго сервера и загрузить их с моего первого сервера (тот, который сейчас дублируется), затем загрузить их обратно, и это починил это. К сожалению, я не загрузил все содержимое своего первого сервера, поэтому я не могу отменить процесс. Поэтому я не уверен, связана ли эта проблема на стороне сервера или связана с кодом, который я пишу? Я просто не знаю, почему это будет работать так долго, а потом просто перестанет работать из ниоткуда.
Я пробовал использовать элементы управления meta no-cache. Я удалил с сервера новую папку, которую продублировал ранее, и это не сработало. Я также пытался удалить файлы за последние пару дней, которые были загружены, но это тоже не сработало. Я попытался загрузить «имя файла» в виде массива, например:
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
%>