当前位置 博文首页 > asp与php中定时生成页面的思路与代码

    asp与php中定时生成页面的思路与代码

    作者:飘易 时间:2021-08-16 18:48

    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。

    jsjbwy
    下一篇:没有了