Jquery ajax刷新-如何删除闪烁
我有一个MVC应用程序,它有一个管理页面,我需要每隔10秒更新显示的数据(以防数据库中的数据发生更改)。我使用的是ajax,但重新加载时会出现闪烁。在没有明显眨眼的情况下实现这一点的最佳方法是什么?注意:我是ajax新手 我的看法是:Jquery ajax刷新-如何删除闪烁,jquery,ajax,Jquery,Ajax,我有一个MVC应用程序,它有一个管理页面,我需要每隔10秒更新显示的数据(以防数据库中的数据发生更改)。我使用的是ajax,但重新加载时会出现闪烁。在没有明显眨眼的情况下实现这一点的最佳方法是什么?注意:我是ajax新手 我的看法是: @model IEnumerable<RangeTimer.Models.UserName> <div class="container"></div> <div class="jumbotron">
@model IEnumerable<RangeTimer.Models.UserName>
<div class="container"></div>
<div class="jumbotron">
<div>
@Html.ActionLink("Add Name to list for range time", "AddUserName", new { target = "_blank" })
<br />
</div>
<hr />
<div id="Update">
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.FullName)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td id="FullName">
@Html.DisplayFor(modelItem => item.FullName)
</td>
@Html.HiddenFor((modelItem => item.Id))
<td>
@Html.ActionLink("Delete", "DeleteFromAdmin", new { id = item.Id })
</td>
</tr>
}
</table>
</div>
</div>
<script>
function refresh(){
$.ajax({
url: '@Url.Action("Admin", "UserNames")',
type: "post",
cache: false,
success: function(data){
$("#Update").html(data);
}
});
}
$(document).ready(function(){
refresh(); //Call auto_load() function when DOM is Ready
});
//Refresh after 10000 milliseconds
setInterval(refresh, 10000);
</script>
闪烁是显而易见的,因为您正在替换一个新的HTML部分。它删除现有的HTML并添加新的HTML。但是如果你觉得它仍然让你恼火,那么你可以做的一件事就是保留HTML,那就是保留表结构,只更新其中的数据,这看起来很棒,没有任何闪烁,但它需要更多的工作。你是不是建议我不使用.HTML(数据)?是的,相反,您可以从服务器传递JSON并执行循环,只需更新td中的数据
public ActionResult Admin()
{
return View(db.UserNames.OrderBy(c => c.Id).ToList());
}