如何自动正确加载页面或 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?的主要内容,如果未能解决你的问题,请参考以下文章

在Vue中重新加载或刷新页面时如何显示正确的嵌套子选项卡

如何让 div 在页面中随机移动(使用 jQuery 或 CSS)

在 jQuery 地址插件书签页面上自动加载 div 内的内容

如何在页面加载完成之前显示页面加载 div?

如何在不使用 .get() 或 .load() 的情况下将 ajax 数据加载到 DIV?

jsp页面该如何刷新验证码