很多时候,咱们须要用到定时生成html页面的性能,原理简介:利用文件如index.html的最初批改工夫和以后的工夫做比拟,当时间差超过肯定距离如2小时,则调用相干页面进行生成新页面。原始源代码如下
PHP版本的的定时生成页面的:
<?php
$file = dirname(__FILE__).'/index.html';
$timex=time()-filemtime($file); //间隔时间,单位秒
if($timex>7200){ //距离大于2小时,从新生成
echo "<script language=javascript src='crhtml.php'></script>";
}
?>
ASP版本的的定时生成页面的:
<%
'不缓存
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.cachecontrol = "no-cache"
'读取最初批改工夫
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 '工夫距离大于肯定值
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更新:正如上面留评论的敌人所说,此种办法确实会减少服务器累赘。为了防止这种形式的毛病,有2种办法来解决,
一、缩小频繁拜访被调用页面的次数,如在流量不大的页面调用 create.asp ;
二、间接应用 linux 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。
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
脚本之家原创文章,收费提供给大家了。
到此这篇对于asp与php中定时生成页面的思路与代码的文章就介绍到这了,更多相干asp定时生成页面内容请搜寻思否家以前的文章或持续浏览上面的相干文章心愿大家当前多多反对思否!
发表回复