asp與php中定時(shí)生成頁(yè)面的思路與代碼
PHP版本的的定時(shí)生成頁(yè)面的:
<?php
$file = dirname(__FILE__).'/index.html';
$timex=time()-filemtime($file); //間隔時(shí)間,單位秒
if($timex>7200){ //間隔大于2小時(shí),重新生成
echo "<script language=javascript src='crhtml.php'></script>";
}
?>
ASP版本的的定時(shí)生成頁(yè)面的:
<%
'不緩存
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.cachecontrol = "no-cache"
'讀取最后修改時(shí)間
FPath=server.mappath("index.html")
set fso=server.CreateObject("scripting.filesystemobject")
If fso.fileExists(FPath) Then
Set f = fso.GetFile(FPath)
crdate=f.DateLastModified
end if
if DateDiff("h",crdate,now())>10 then '時(shí)間間隔大于一定值
response.write "<iframe border=0 frameborder=0 scrolling=no width=0 height=0 src=""/crhtml.asp""></iframe>"
end if
%>
使用方法:在網(wǎng)站的流量大的頁(yè)面,一般為首頁(yè)用 iframe 調(diào)用上面的代碼即可,如插入 <iframe border=0 frameborder=0 scrolling=no width=0 height=0 src="/create.asp"></iframe>
2011-7-9 @ PS更新:正如下面留評(píng)論的朋友所說(shuō),此種方法的確會(huì)增加服務(wù)器負(fù)擔(dān)。為了避免這種方式的缺點(diǎn),有2種方法來(lái)解決,
一、減少頻繁訪問(wèn)被調(diào)用頁(yè)面的次數(shù),如在流量不大的頁(yè)面調(diào)用 create.asp ;
二、直接使用 linux cron定時(shí)服務(wù)、或windows計(jì)劃任務(wù)或一些定時(shí)執(zhí)行命令的小軟件 例如:hou任務(wù)計(jì)劃。
參考文章如下:
1、linux使用crontab命令定時(shí)重啟服務(wù)器
2、Cron定時(shí)執(zhí)行帶參數(shù)的PHP代碼
3、Cpanel下Cron Jobs定時(shí)執(zhí)行PHP的方法
這樣就可以避免頻繁調(diào)用生成判斷頁(yè)面了,只在需要執(zhí)行的時(shí)候訪問(wèn)一次生成頁(yè)面即可。
使用了cdn的網(wǎng)站需要注意的問(wèn)題
鑒于現(xiàn)在很多網(wǎng)站都使用了cdn,如果不斷自動(dòng)生成首頁(yè)可能導(dǎo)致首頁(yè)為空的情況下被cdn抓取到導(dǎo)致首頁(yè)是空內(nèi)容,那么這樣怎么解決呢。
腳本之家的方案:例如可以生成index_def.htm,然后通過(guò)程序判斷內(nèi)容是否有更新,內(nèi)容是否不為空(內(nèi)容一般大于30k),這樣執(zhí)行復(fù)制操作將index_def.htm復(fù)制一份為index.htm即可。
winddow服務(wù)器下可以使用vbscript因?yàn)楸容^強(qiáng)大,linux可以使用shell。
vbscript
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
f1="F:\webroot\jb51net\index_def.htm"
f2="F:\webroot\jb51net\index.htm"
fsize=50000 '50k
set fn2=fso.GetFile(f1)
flsize2=fn2.size
fldate2=fn2.datelastmodified
set fn=fso.GetFile(f2)
flsize1=fn.size
fldate1=fn.datelastmodified
If fso.FileExists(f1) and flsize2>fsize and fldate2>fldate1 Then
fso.getfile(f1).copy(f2)
if err.number=0 then WriteHistory "成功"&now()&".........","log.txt"
end if
Sub WriteHistory(hisChars, path)
Const ForReading = 1, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(path, ForAppending, True)
f.WriteLine hisChars
f.Close
End Sub
腳本之家原創(chuàng)文章,免費(fèi)提供給大家了。
到此這篇關(guān)于asp與php中定時(shí)生成頁(yè)面的思路與代碼的文章就介紹到這了,更多相關(guān)asp定時(shí)生成頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
常用ASP函數(shù)集【經(jīng)驗(yàn)才是最重要的】
常用ASP函數(shù)集【經(jīng)驗(yàn)才是最重要的】...2007-01-01
在ASP中用組件檢測(cè)當(dāng)前網(wǎng)卡地址的代碼
在ASP中用組件檢測(cè)當(dāng)前網(wǎng)卡地址的代碼...2007-03-03
一種理論上最快的Web數(shù)據(jù)庫(kù)分頁(yè)方法
一種理論上最快的Web數(shù)據(jù)庫(kù)分頁(yè)方法...2007-01-01
可以應(yīng)用到馬克斯電影站生成Rss Feed的代碼
前段時(shí)間為了給本人的電影站增加Rss訂閱功能,動(dòng)手寫了個(gè)動(dòng)態(tài)生成Rss Feed的ASP代碼,沒(méi)法上傳附件,就直接貼代碼吧,反正也不長(zhǎng),用馬克斯做電影站的朋友直接拿去用吧,其它類型的站點(diǎn)修改一下也能用。生成的Rss Feed采用UTF-8編碼,經(jīng)過(guò)feedvalidator.org校驗(yàn),兼容Rss 2.0和Atom。2008-03-03
asp cookie中文Javascript取得中文cookie
這篇文章主要介紹了asp cookie中文Javascript取得中文cookie,原理就是將中文編碼改成UTF-8編碼格式,傳到前臺(tái),再用JS將其解碼2014-07-07
Asp限制IP訪問(wèn) 阻止某一個(gè)IP段禁止訪問(wèn)本站的代碼
經(jīng)常有些地方性的B2B或者B2C網(wǎng)站到處都被批量發(fā)布好多垃圾信息,把我的解決辦法分享給大家2011-12-12
access數(shù)據(jù)庫(kù)的一些少用操作,ASP,創(chuàng)建數(shù)據(jù)庫(kù)文件,創(chuàng)建表,創(chuàng)建字段,ADOX
access數(shù)據(jù)庫(kù)的一些少用操作,ASP,創(chuàng)建數(shù)據(jù)庫(kù)文件,創(chuàng)建表,創(chuàng)建字段,ADOX...2006-10-10
ASP獲取網(wǎng)頁(yè)全部圖片地址并保存為數(shù)組的正則
ASP常用函數(shù):getIMG()獲取網(wǎng)頁(yè)全部圖片地址并保存為數(shù)組2008-03-03

