使用更新模型向导将Web App添加到自动刷新数据库

时间:2014-07-08 15:11:01

标签: c# jquery asp.net-mvc entity-framework

当原始数据进入并更新MySql数据库时,如何让我的数据库自动刷新。我不只是简单地谈论更新模型,因为我需要每隔5分钟左右自动更新一次模型?

1 个答案:

答案 0 :(得分:0)

这是一个相当模糊的问题,或许最好在您的网页上提供一个数据示例,然后我们可能会建议最适合它的内容。但如果我理解正确,有几种方法可以解决它,你可以用它作为起点。

  1. 将使用javascript MVVM库(knockout)并进行ajax调用以获取新数据,然后将这些更改推送到视图模型。这需要代表你进行一些阅读(不过我愿意在这里给出答案 - 值得努力)。

  2. 您可以使用信号器之类的东西来推送浏览器的通知/更新(您也可以将它与选项1结合使用)和javascript / jquery来更新页面。

  3. 你可以在计时器上使用ajax来获取数据并使用javascript / jquery来更新页面。

  4. 如果您想要一种更简单的方法,可以使用javascript计时器在5分钟后刷新页面。然后你的控制器将获取最新的数据等,如果人们处于中间状态可能会有点烦人。

  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);
     };