加入收藏 | 设为首页 | 会员中心 | 我要投稿 十堰站长网 (https://www.0719zz.com/)- 混合云存储、网络、视频终端、云计算、媒体处理!
当前位置: 首页 > 编程开发 > Asp > 正文

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

发布时间:2023-02-20 09:27:21 所属栏目:Asp 来源:互联网
导读:PHP版本的的定时生成页面的: ?php $file = dirname(__FILE__)./index.html; $timex=time()-filemtime($file); //间隔时间,单位秒 if($timex7200){ //间隔大于2小时,重新生成 echo script language=javascript src=crhtml.php/script; } ? ASP版本的的定时
  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

(编辑:十堰站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读