让Web App自动刷新数据库,而不是使用更新模型向导
本文关键字:更新 向导 模型 App Web 数据库 刷新 | 更新日期: 2023-09-27 18:11:53
如何让我的数据库在原始数据进入和更新MySql数据库时自动刷新?我说的不仅仅是更新模型因为我需要这样做还包括每5分钟自动更新一次视图?
这是一个相当模糊的问题,也许最好给出您页面上数据的示例,然后我们可能能够建议最适合它的东西。但是,如果我理解正确的话,有几种方法可以解决这个问题,您可以将此作为起点。
-
将是使用javascript MVVM库(knockout)并使ajax调用获取新数据,然后将这些更改推送到视图模型。这将需要为您的利益进行相当多的阅读(我不愿意在这里给出答案-尽管值得付出努力)。
-
你可以使用像signalr这样的东西来推送通知/更新到浏览器(你也可以将它与选项一结合)和javascript/jquery来更新页面。
-
你可以在计时器上使用ajax来获取数据,并使用javascript/jquery来更新页面。
-
如果你想要一个更简单的方法,你可以使用一个javascript计时器在5分钟后刷新页面。然后你的控制器将获取最新的数据等,可能有点烦人,如果人们在中间的东西。
由于你不与你的数据交互,它可能是最简单的只是获取你的数据页面加载和设置一个计时器,每5分钟再次获取它
public class MyStatsModel
{
public int StatA { get; set; }
public string StatB { get; set; }
public double StatC { get; set; }
// etc
}
[HttpGet]
public JsonResult FetchLatestStats()
{
var dbStats = // get latest stats
var myStatsModel = new MyStatsModel() { StatA = dbStats.A }; // etc
return new Json(MyStatsModel);
}
$(document).ready(function () {
var interval = 5 * 60 * 1000; // 5 minutes
var getLatestStats = function() {
$.ajax({
type: 'GET',
url: '/Stats/FetchLatestStats'
dataType: "application/json; charset=utf-8",
success: function(myStatsModel) {
$('#someElementA').text(myStatsModel.StatA);
$('#someElementB').text(myStatsModel.StatB);
// etc
},
error: function() {
alert('There was an error fetching latest stats!');
}
});
};
setInterval(getLatestStats(), interval);
};