2012-05-08 5 views
0

Я создал страницу в ASP, который загружает динамический контент с кодом, похожее на это:Server.Execute Дубликаты Dynamic Content

<% 
    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 раз, когда браузер обновляется.

Это случилось со мной с теми же файлами на моем втором сервере месяц назад, и мне пришлось удалить все файлы со второго сервера и загрузить их с моего первого сервера (дублирующего сейчас), затем загрузить их обратно, и это исправлено. К сожалению, я не загружал все содержимое сервера моего первого сервера, поэтому я не могу отменить этот процесс. Поэтому я не уверен, является ли эта проблема серверной, или если она связана с кодом, который я пишу? Я просто не знаю, почему это так долго будет работать, а потом просто перестань работать.

Я пробовал использовать элементы управления мета-no-cache. Я удалил новую папку, которую я дублировал ранее с сервера, и это не сработало. Я также пытался удалить файлы за последние пару дней, которые были загружены, и это тоже не сработало. Я попытался загрузки файла «» как массив, таких как:

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

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

next 

Я действительно надеюсь, что кто-то знает, что я здесь делаю неправильно.

-EDIT-

Я также делать это и получать те же результаты.

<% 
'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 из него затем использует Выполнить, чтобы запустить его в исходном файле. Проблема с этим - это все мои страницы, которые я вызываю в них для других ресурсов, а сценарий замены не позволяет добавлять asp-теги вокруг строк include.

<% 
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 
%> 
+0

Есть ли какой-либо причине вы не используете Включает вместо Server.Execute? Я думаю, вы могли бы легко устранить эту проблему, заменив вместо этого свои файлы. – HK1

+0

Да, я начал использовать, но список файлов, которые мне нужно включить, слишком велика и резко сокращает время загрузки страницы. Я нашел использование Server.Execute был быстрее и дал мне возможность использовать переменную в скрипте, поскольку вы не можете использовать переменные внутри тега include. – xxstevenxo

+0

Он работает на одном сервере, но не в другом. Оба они используют одни и те же сценарии, и оба они были организованы Godaddy. – xxstevenxo

ответ

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

%>