如何在c#中每隔几秒钟进行一次函数调用?

时间:2016-12-30 09:05:09

标签: javascript c# jquery asp.net highcharts

我正在使用asp.net中的highcharts构建一个仪表板。现在,我有客户端,我使用Javascript和Ajax。后端是使用C#完成的。我被要求自动更新各个银行的数据每个' x'分钟。现在,我需要调用一个函数来每隔几分钟完成所有后端工作。然后数据将存储在一个容器(如数组)中,并发送到Javascript,它执行所有显示和填充。

我不知道如何让函数每隔几分钟重复调用一次,因为数据将在C#代码中更新,新数据将传递给Javascript(顺便提一下,每次刷新一次)几分钟)。

3 个答案:

答案 0 :(得分:0)

setInterval函数中编写JS方法/ AJAX调用并指定一些间隔。 例如,下面的代码将警告" Hello"每3秒(3000毫秒):

setInterval(function(){ alert("Hello"); }, 3000);

类似地从这里调用C#方法(API),它总是返回最新的数据集。

答案 1 :(得分:0)

使用webmethod在c#中返回json并使用setInterval函数在给定时间内调用GetGraphData()函数。
样本javascript -

function GetGraphData() {
    //ajax call here, call c# webmethod using ajax 
    //and decode json string using JSON.parse()

    // call this function again in 1000ms
    setInterval(GetGraphData, 1000);
}

//add Get graph data in page load 
$(function () {
    //first call
    GetGraphData();
});

示例WebMethod -

[WebMethod]
public static string calctranscs()
{
    string strJson="";

    //here create json string with your logic

    retutn strJson;
}

答案 2 :(得分:0)

页面加载事件只会调用该函数一次。您需要在C#中创建一个WebMethod。

[WebMethod]
public void calctranscs() {
     for (int i = 1; i < bankid.Length; i++) {
         sc.transactionstats(country[i], bankid[i]);
         merchant_name = sc.MerchantName;
         success_transcs = sc.noofsuccessfultranscs;
         failed_transcs = sc.nooffailedtranscs;
         service_transcs = sc.nooffailedservicetranscs;
         count++;
    }
}

现在你从JavaScript(或者最好是jQuery)调用这个函数。

function CallCalctranscs() {     
         $.ajax({
         type: "GET",
         url: '<youraspxpage>.aspx/calctranscs',
         data: "",
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         success: function (msg) {
            alert("success");
        },
        error: function (e) {
            alert("failure");
        }
    });
}

重复调用上述功能。

setInterval(CallCalctranscs, 100);