如何自动正确加载页面或 div?
Posted
技术标签:
【中文标题】如何自动正确加载页面或 div?【英文标题】:How can I properly load A page or A div automatically? 【发布时间】:2019-10-12 14:41:17 【问题描述】:我正在创建一个简单的排队系统,现在当我点击名为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?
【问题讨论】:
使用 Partial view 和 Ajax,当数据返回时替换 div 内容。 我的BtnNext()
函数已经在使用 ajax 和部分视图,因为我在我的页面上呈现当前数据,我需要从另一个页面再次呈现该数据。
【参考方案1】:
在服务器端和客户端都使用 asyn 关键字,将微调器加载器添加到要自动加载的每个 div 中。不要进行任何自定义线程,因为有时线程需要更多时间,但实际上他不需要更多时间睡觉,所以最好的解决方案是让每个控制器 ayns 和调用者也必须是 async。
【讨论】:
你使用的是 asp.net core 还是 asp.net mvc ? srramalho.wordpress.com/2017/08/27/… 我希望上面的 url 对你的员工有所帮助。 我正在使用 Asp.net MVC【参考方案2】:<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>
【讨论】:
你能解释一下吗? 一旦页面的所有 DOM 元素都准备好使用,就会调用该函数。每秒 div 元素将通过调用相应的操作方法进行更新。 我在我的TempData["QueueItem"]
中获取了我的呼叫屏幕数据,我试过了,它不起作用以上是关于如何自动正确加载页面或 div?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 div 在页面中随机移动(使用 jQuery 或 CSS)
在 jQuery 地址插件书签页面上自动加载 div 内的内容