1. 程式人生 > 程式設計 >asp與php中定時生成頁面的思路與程式碼

asp與php中定時生成頁面的思路與程式碼

版本的的定時生成頁面的:

<?php
$file = dwrihUHirname(__FILE__).'/index.html';
$timex=time()-filemtime($file); //間隔時間,單位秒
if($timex>7200){ //間隔大於2小時,重新生成
echo "<script language= src='crhtml.php'></script>";
}
?>

ASP版本的的定時生成頁面的:

<%
'不快取
Response.Buffer = True 
Response.ExpiresAbsolute = Now() - 1 
Response.Expires = 0 
ReswrihUH
ponse.cachecontrol = "no-cache" '讀取最後修改時間 FPath=server.mappath("index.html") set fso=server.CreateObject("scripting.filesystemobject") If fso.fileExists(FPath) Thehttp://www.cppcns.comn Set f = fso.GetFile(FPath) crdate=f.DateLastModified end if if DateDiff("h",crdate,now())>10 then '時間間隔大於一定值 response.write "<iframe border=0 frameborder=0 scrolling=no width=0 height=0 src=""/crhtml.asp""></iframe>" end if %>

使用方法:在的流量大的頁面,一般為首頁用 iframe 呼叫上面的程式碼即可,如插入 <iframe border=0 frameborder=0 scrolling=no width=0 height=0 src="/create.asp"></iframe>
2011-7-9 @ PS更新:正如下面留評論的朋友所說,此www.cppcns.com種方法的確會增加伺服器負擔wrihUH。為了避免這種方式的缺點,有2種方法來解決,

一、減少頻繁訪問被呼叫頁面的次數,如在流量不大的頁面呼叫 create.asp ;

二、直接使用 cron定時服務、或windows計劃任務或一些定時執行命令的小軟體 例如:hou任務計劃。

參考文章如下:

1、linux使用crontab命令定時重啟伺服器

2、Cron定時執行帶引數的PHP程式碼

3、Cpanel下Cron Jobs定時執行PHP的方法

這樣就可以避免頻繁呼叫生成判斷頁面了,只在需要執行的時候訪問一次生成頁面即可。

使用了cdn的網站需要注意的問題

鑑於現在很多網站都使用了cdn,如果不斷自動生成首頁可能導致首頁為空的情況下被cdn抓取到導致首頁是空內容,那麼這樣怎麼解決呢。

我們的方案:例如可以生成index_def.htm,然後通過程式判斷內容是否有更新,內容是否不為空(內容一般大於30k),這樣執行復制操作將index_def.htm複製一份為index.htm即可。

winddow伺服器下可以使用vbscript因為比較強大,linux可以使用shell。