通过调用函数自动更新站点

时间:2016-03-07 05:39:16

标签: javascript c# asp.net web

我正在使用ASP.NET构建新闻网站。我想通过拉新的新闻文章自动更新。这是通过调用下载更新的json字符串的函数来完成的。

如何在C#中每隔半小时调用一次此功能? 或者我应该在javascript中编写此函数并每隔半小时调用一次?

5 个答案:

答案 0 :(得分:2)

您可以在C#中使用Timer

protected void Page_Load(object sender, EventArgs e)
    {
        // Create a timer
        System.Timers.Timer myTimer = new System.Timers.Timer();

        //call method
        myTimer.Elapsed += new ElapsedEventHandler(mymethod);

        //time interval 5 sec
        myTimer.Interval = 5000;
        myTimer.Enabled = true;
    }

public void mymethod(object source, ElapsedEventArgs e)
    {            
        //your code
    }

此外,您可以在Javascript中使用SetTimeOut函数

setTimeout(function() {  

//calls click event after a certain time
    that.element.click();
}, 5000);

OR

使用此任务

Task.Factory.StartNew(() =>
    {
        System.Threading.Thread.Sleep(5000);
        CallMethod();
    });

答案 1 :(得分:1)

在head标签中使用以下内容刷新页面,

<meta http-equiv="refresh" content="value">

此处的值以秒为单位。如果您想在30分钟后刷新页面,请使用1800作为值。

答案 2 :(得分:1)

  1. 您可以将网站的数据源设置为Json / XML等 静态文件或数据库。

  2. 创建一个调度程序,用于查找特定数据中的新数据 在您获得Json的特定地点的间隔 字符串。

  3. 您的日程安排程序将更新您的数据源,该数据源将更新您的新闻

答案 3 :(得分:0)

根据定义,网站没有时间触发器。每个请求都是独立的,服务器可以在请求之前处于“睡眠”模式。

但你描述的问题很常见。

解决问题的方法很少:

  1. Hacky方法:打开一个页面,一些javascript每隔XX分钟拨打一次电话
  2. 如果您使用Microsoft Azure,则可以使用Web Jobs future(免费)或Scheduler功能(5次操作免费)
  3. 您可以开发一个Windows服务,每隔XX分钟就会调用您的网站。 Exelent框架(免费)是Quartz。您需要在“永远在线”的Windows PC上托管此服务,与您的网站分开

答案 4 :(得分:0)

您应该为此创建一个Windows服务。因为即使你的网站页面没有打开,它也会在后台运行。

否则

使用Microsoft Azure,它将帮助您创建调度程序功能,以便继续更新您的网站内容。