绵阳动力网站建设

ASP网站建设中定时发布生成页面的思路与代码

时间:2021-07-12

ASP网站建设中定时发布生成页面的思路与代码

在网站建设中经常会用到定时生成或发布功能,例如管理员在后台添加了一条信息,并设置为某个时间自动发布显示到网站上,因PHP和ASP.NET有相应的组件支持,所以比较容易实现。但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
%>

将以上代码保存为create.asp,代码中的crhtml.asp是我们具体的生成静态页面的程序。

接着就是应该如何来执行这段代码呢?之前有过方法是:在网站的流量大的页面,一般为首页用 iframe 调用上面的代码即可,如插入 <iframe border=0 frameborder=0 scrolling=no width=0 height=0 src="/create.asp"></iframe>来实现,但在测试中发现此种方法的确会增加服务器负担。后来探索发现了以下两个方法:

1、减少频繁访问被调用页面的次数,如在流量不大的页面调用插入代码 ;

2、直接使用 linux cron定时服务、或windows计划任务或一些定时执行命令的小软件来执行,例如:OnTimer HOU任务计划软件等。

这样就可以避免频繁调用生成判断页面了,只在需要执行的时候访问一次生成页面即可。

但在后期的测试的又发现一个问题:现在很多网站都使用了cdn加速,如果不断自动生成首页可能导致首页为空的情况下被cdn抓取到导致首页是空内容,那么这样怎么解决呢。我们又来探索新的解决办法:

例如可以生成index_def.htm,然后通过程序判断内容是否有更新,内容是否不为空(内容一般大于30k),这样执行复制操作将index_def.htm复制一份为index.htm即可。winddow服务器下可以使用vbscript因为比较强大,linux可以使用shell。

总结:通过不断的测试和探索,我们暂时解决了ASP网站建设中定时发布生成页面的功能,后期可能还会有新的问题产生,我们只要找到问题的原因,就来探索新的解决办法。

Copyright © 绵阳动力网站建设 www.kf51.cn All Rights Reserved 蜀ICP备08100083号

客服微信
客服微信
0816-6339181
客服微信
my_dongli