【问题标题】:C# create and update static html contentC# 创建和更新静态 html 内容
【发布时间】:2017-12-14 01:14:13
【问题描述】:
我想知道这个例子是否可行,以及对性能的影响是什么?
首先是关于静态内容和页面生命周期的问题。
我有一个页面“Latest_quote”。该页面是静态内容,只需每小时更新一次。我希望它是一个静态的 .html 页面,一旦被击中就会返回,因此不需要渲染或解析 html 文件,因此延迟尽可能低。因此,它不应该等待脚本完成运行或解析仅返回静态内容的 html 页面。但是我想要一个 C# 脚本来跟踪页面获得了多少访问者,但是这个脚本应该在返回静态内容之后或同时运行。这可能吗?
我还想要一个每小时运行一次的计时器作业来检查和更新静态页面。我可以在 C# ASP.NET 或 Razor 站点中运行计时器作业吗?页面在被新信息覆盖时会关闭吗?
【问题讨论】:
标签:
c#
asp.net
performance
razor
page-lifecycle
【解决方案1】:
性能方面静态页面是个好主意。
对于作业,您可以使用 Quartz.net 任务调度程序。将此保存在您的 Global.asax.cs 文件中,Application_Start 方法中
ISchedulerFactory sf = new StdSchedulerFactory();
scheduler = sf.GetScheduler();
scheduler.Start();
IJobDetail jobDetail = JobBuilder.Create<HtmlUpdateJob>() // Class of the job
.WithIdentity("HtmlUpdateJob") //Name of job
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("UpdateTrigger") // Name of trigger
.StartNow()
.WithCronSchedule("0 0/60 * 1/1 * ? *") //every 60 mins
.Build();
scheduler.ScheduleJob(jobDetail, trigger);
更新作业类:
internal class HtmlUpdateJob : IJob
{
public void Execute(IJobExecutionContext context)
{
// Update your html here
}
}
确保您处理同时访问和写入 html 的情况。
对于用户跟踪,尝试使用 Google Analytics 等外部工具,它会为您提供客户端 JavaScript,它将数据发布到某些服务器页面。 Google Analytics 可以为您提供更全面的访问者数据。
或者,如果您的站点托管在本地 Intranet 上。您可以按照相同的方法创建一个服务器端页面,该页面可以由客户端 JavaScript 调用。