当原始数据进入并更新MySql数据库时,如何让我的数据库自动刷新。我不只是简单地谈论更新模型,因为我需要每隔5分钟左右自动更新一次模型?
答案 0 :(得分:0)
这是一个相当模糊的问题,或许最好在您的网页上提供一个数据示例,然后我们可能会建议最适合它的内容。但如果我理解正确,有几种方法可以解决它,你可以用它作为起点。
将使用javascript MVVM库(knockout)并进行ajax调用以获取新数据,然后将这些更改推送到视图模型。这需要代表你进行一些阅读(不过我愿意在这里给出答案 - 值得努力)。
您可以使用信号器之类的东西来推送浏览器的通知/更新(您也可以将它与选项1结合使用)和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);
};