我正在创建一个简单的排队系统,现在当我单击名为BtnNxt()
的按钮时,它将使我排队的数据出队并呈现到我的页面。并从另一个页面进行渲染。这是我的呼叫屏幕页面,但是当我再次单击它时,需要刷新我的呼叫屏幕页面以更新队列中的当前号码。所以我想要的是,我想刷新页面或div来更新它吗?
这是我的BtnNext()
控制器:
public ActionResult BtnNext()
{
System.Threading.Thread.Sleep(500);
var first = MyQueue.todayQueue.Dequeue();
MyQueue.todayQueue.Count();
TempData["QueueItem"] = first;
TempData.Keep();
return PartialView("_queuenumber");
}
这是我的呼叫屏幕页面:
@{
var item = (Rosh.QueueMe.Web.Models.MyQueue)TempData["QueueItem"];
}
<table>
<tr>
<th scope="tickets">TICKETS</th>
<th scope="name">NAME</th>
<th scope="counter">COUNTER</th>
<th scope="service">SERVICE</th>
</tr>
<tr class="data">
<td>#@item.QueueNumber</td>
<td>@item.Name</td>
<td>Desk 1</td>
<td>@item.ServiceId</td>
</tr>
</table>
我尝试使用此代码
<meta http-equiv="refresh" content="1" />
此代码每1秒钟刷新一次我的页面,但是是否可以重新加载div?也许使用ajax?
答案 0 :(得分:0)
在两端服务器和客户端上都使用asyn关键字,将微调器加载器添加到要自动加载的每个div中。不要做任何自定义操作,因为有时线程会花费更多时间,但实际上他并不需要更多时间睡觉,因此最好的解决方案是使每个控制器ayns和调用者也必须异步。
答案 1 :(得分:0)
<script type="text/javascript">
$(function() {
setInterval(loadData,1000); // invoke load every second
loadData(); // load on initial page loaded
});
function loadData() {
$('#Div').load( '/controller/BtnNext' );
}
</script>