如何使用javascript从控制器调用功能

时间:2015-06-10 08:39:39

标签: javascript c# jquery asp.net-mvc

setInterval(makeAjaxCall(),5000);

        function makeAjaxCall() {
            var url = '/Lines/dbcheck/?LineID=@ViewBag.LineID&ProductID=@ViewBag.ProductID&LastID=@LastID';
            var data = {};
            $.get(url, data, function(response_text){
                if (response_text == 1)
                {
                    document.location.reload();
                }
                else
                {
                    setInterval(makeAjaxCall(),5000);
                }
            }, "text");
        }

我已经可以从控制器调用函数但只有一次。我想创建函数来检查数据库中的数据并返回1或0.如果它是0我想延迟5秒然后再次调用函数。

问题是参数response_text没有更新,因为我只能第一次从控制器调用该函数

2 个答案:

答案 0 :(得分:1)

setInterval(makeAjaxCall(),5000);

        function makeAjaxCall() {

           $.ajax({      
                cache : false,    
                dataType: "json",      
                type: "GET",
                async:false,
                url: url ,
                success: function (fdata) { 
                if (fdata == 1)
                {
                    document.location.reload();
                }
                else
                {
                    setInterval(makeAjaxCall(),5000);
                }
             },
            error: function (reponse) {                                     
                }
            });
} 

答案 1 :(得分:0)

由于您通过了(),您的代码会立即执行,而不是等待时间延迟。

setInterval(makeAjaxCall(), 5000);

更改为

setInterval(makeAjaxCall, 5000);

或替代方式

setInterval(function() { 
  makeAjaxCall();
}, 5000);