我是靠谱客的博主 背后皮带,最近开发中收集的这篇文章主要介绍asp与php中定时生成页面的思路与代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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:webrootjb51netindex_def.htm"
f2="F:webrootjb51netindex.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定时生成页面内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!

最后

以上就是背后皮带为你收集整理的asp与php中定时生成页面的思路与代码的全部内容,希望文章能够帮你解决asp与php中定时生成页面的思路与代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(131)

评论列表共有 0 条评论

立即
投稿
返回
顶部