|    |  
 | gliba 09.06.2007 22:16 Зачастую вебмастер хочет показывать некоторую статистику сайта, например, число посетителей, число фотогалерей и т.д. 
Сбор статистики может предъявлять высокие требования по использованию системных ресурсов и/или требовать много времени. 
В таком случае целесообразно проводить сбор статистики по таймеру или cron'у, писать результаты в файл. 
На страницах пользователей просто его отображать. Код в ASP иллюстрирует этот подход.
 
 Код
<%@ Language=VBScript %>
<%
dim cn, cmd, rs, sql, sRealDir, fso, ts, day, month, sName, sNew
sRealDir = Server.MapPath( "/stat" )
Set fso = Server.CreateObject("Scripting.FileSystemObject")
sName = sRealDir & "stat.inc"
if fso.FileExists( sName ) then 
'rename existing
	day = DatePart( "d", dt1 )
	if len( day ) < 2 then day = "0" & day
	month = DatePart( "m", dt1 )
	if len( month ) < 2 then month = "0" & month
	sNew = "stat"  & DatePart( "yyyy", dt1 ) & month & day & ".inc"
	call fso.MoveFile( sName, sRealDir & sNew )
end if
Set ts = fso.OpenTextFile( sName, 2, True)	'ForWriting
call openConnection()
ts.Write "<table align='center' cellspacing='0' cellpading='3'><tr>" & Chr(10)
sql = "SELECT count(*) AS cnt FROM tblUser WHERE status > 0"
cmd.CommandText = sql
rs.Open cmd
if not rs.EOF then
	ts.Write "<td><b>студенты</b>: " & rs("cnt") & "</td>" & Chr(10)
end if
rs.Close
sql = "SELECT count(*) AS cnt FROM tblProductSlide"
cmd.CommandText = sql
rs.Open cmd
if not rs.EOF then
	ts.Write "<td><b>фотослайды</b>: " & rs("cnt") & "</td>" & Chr(10)
end if
rs.Close
ts.Write "</tr></table>" & Chr(10)
call closeConnection()
ts.Close
Set fso = nothing
sub openConnection()
	set cn = Server.CreateObject("ADODB.Connection")
	cn.ConnectionTimeout = 60
	cn.ConnectionString = sConnectionString
	cn.Open
	set cmd = Server.CreateObject("ADODB.Command")
	cmd.ActiveConnection = cn
	cmd.CommandType = adCmdText
	set rs = Server.CreateObject("ADODB.Recordset")
end sub
sub closeConnection()
	cn.Close  
	set cmd = nothing
	set rs = nothing
	set cn = nothing
end sub
%>
 КомментарииСоздаем объект для работы с файловой системой. 
Проверяем наличие файла 'stat.inc' в директории /stat. Есть файл существует, переименовываем его. 
Открываем новый файл 'stat.inc' для записи. 
Открываем соединение с базой данных. Посылаем несколько запросов к базе. Результаты пишем в файл 
(при его открытии в броузере отобразится табличка с собранными данными). Закрываем соединение. Закрываем файл.
  |