我正在使用asp.net中的highcharts构建一个仪表板。现在,我有客户端,我使用Javascript和Ajax。后端是使用C#完成的。我被要求自动更新各个银行的数据每个' x'分钟。现在,我需要调用一个函数来每隔几分钟完成所有后端工作。然后数据将存储在一个容器(如数组)中,并发送到Javascript,它执行所有显示和填充。
我不知道如何让函数每隔几分钟重复调用一次,因为数据将在C#代码中更新,新数据将传递给Javascript(顺便提一下,每次刷新一次)几分钟)。
答案 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);