在不重新加载页面的情况下定期刷新结果
Asp.net mvc3 periodic refresh of results without reloading the page
我使用asp.net MVC3的网站,在一个视图中显示查询结果(在控制器中管理)使用foreach。
我现在要做的是每次自动刷新查询的输出,而不刷新页面。
我如何使用ajax做到这一点?
View的代码:
@{
string firstTime = "";
}
@foreach( var database in Model)
{
if (!(firstTime == database.DB))
{
<h3> @database.DB </h3>
}
<div class="logContainer" onclick="location.href='/logs/Details?databaseID=@database.DB&exceptionName=@database.Exception&exceptionsOccurred=@database.Count';">
<div class="counter"><b>@database.Count</b></div>
<div class="exceptionName"> Exceptions of Type: @database.Exception</div>
<div class="date">Siste: @database.LastOccurred</div>
</div>
<hr />
firstTime = database.DB;
}
您可以使用窗口。setInterval javascript方法,以定期向服务器发送AJAX请求并刷新DOM的相应部分。例如,如果您想每10秒刷新一次内容:
window.setInterval(function() {
$.post('@Url.Action("someaction", "somecontroller")', function(result) {
$('#results').html(result);
});
}, 10 * 1000);
这将向控制器动作发送一个AJAX请求,而控制器动作又会返回一个包含更新结果的部分视图:
pubilc ActionResult SomeAction()
{
SomeViewModel model = ...
return PartialView(model);
}
这个局部视图的结果将被注入到一些DOM元素中,其中包含id="results"
。
您可以使用JSON传递查询结果并自己从javascript中呈现HTML,或者将for-each代码分离到不同的部分视图,并使用jQuery的$。Ajax方法用新的响应
为什么不把你的数据放到一个现有的网格控件中,比如DataTables,它是轻量级的,速度很快,而且可以扩展。然后,使用一个javascript计时器,告诉数据表刷新它的内容。
我在MVC3中使用了这个方法,效果很好。
相关文章:
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- 如何在结果中添加下划线但不添加虚假值的情况下进行映射
- 在不使用现代化的情况下实现此结果
- 在没有数据源结果的情况下隐藏BIRT中的网格/表
- 在不使用200行var的情况下,在结果字段中添加顺序命名的变量?[PDF表格]
- 有没有办法在不使用表单的情况下计算数字并在HTML5中显示结果
- JavaScript:在不影响结果准确性的情况下舍入数字
- 如何在不限制返回结果数的情况下进行查询
- 在页面加载过程中,在不重定向到其他页面的情况下,在同一页面上打印距离结果
- 突出显示搜索结果在某些情况下不起作用
- onclick v no onclick;如何在不点击的情况下获得结果
- 如何在没有空数组的情况下从JSON结果中过滤出特定的地址类型?
- Nodejs如何在没有settimeout的情况下访问回调结果
- 如何在不刷新页面的情况下刷新MySQL查询的结果?
- 我如何在不重写整个应用程序(Laravel + jQuery, SPA风格)的情况下块结果(延迟加载?)
- 在“没有结果”的情况下;在Express场景中,我如何将选择错误消息输出到浏览器而不显示空数组[]
- 在不影响调查结果的情况下查看调查结果
- 我可以在不使用$q的情况下对AngularJS $http调用的结果进行处理并转发吗?
- 在不重新加载页面的情况下定期刷新结果
- 如何在不影响php中任何其他函数的情况下清除先前返回的结果?