gpt4 book ai didi

javascript - 如何在MVC中动态重新加载页面

转载 作者:行者123 更新时间:2023-12-02 22:27:41 25 4
gpt4 key购买 nike

有人可以帮助我吗?我想在某些状态发生变化时更改我的页面。我不想看到上面的刷新标志。

<script type="text/javascript" language="javascript">
var idleInterval = setInterval("reloadPage()", 5000);
function reloadPage() {
location.reload();
}
</script>

<h2>Verlichting</h2>

<div class="Verlichting">

<div class="Border">
Verlichting Garage 1
</div>

<div class="ButtonVerlichting">
@if (Model.Verlichting1 == true)
{
<button class="On">Aan</button>
}
else if (Model.Verlichting1 == false)
{
<button class="Off">Uit</button>
}
</div>

<div class="Border">
Verlichting Garage 2
</div>

<div class="ButtonVerlichting">
@if (Model.Verlichting2 == true)
{
<button class="On">Aan</button>
}
else if (Model.Verlichting2 == false)
{
<button class="Off">Uit</button>
}
</div>

<div class="Border">
Verlichting Garage Grind
</div>

<div class="ButtonVerlichting">
@if (Model.VerlichtingGrind == true)
{
<button class="On">Aan</button>
}
else if (Model.VerlichtingGrind == false)
{
<button class="Off">Uit</button>
}
</div>

</div>

<div class="clear">

</div>

当其中一个模型 bool 值发生变化时。当某些状态发生变化时,我的页面需要更改。按钮控制一些灯。现在我每 5 秒刷新一次页面。但我想当一种状态改变时它会改变吗?我通常使用 C# MVC,但不能使用其他 javascript。

最佳答案

您无法使用当前代码刷新 View 服务器端或“动态”刷新。

HTTP 是无状态的。

HTTP 的工作原理如下:客户端(在您的情况下为 Web 浏览器,例如 Chrome)已向您的服务器 (/mywebsite/myview) 请求资源,因为您在 Web 浏览器地址栏中输入了 Web 地址/URL/URI。该网址是到您的服务器的“映射”。 HTTP GET 请求从浏览器发送到服务器,并且您的服务器正在运行 ASP.NET,IIS 处理该请求并将请求传递到 ASP.NET MVC 应用程序。您的 Controller / View 路由条目匹配,并且您的 ASP.NET 应用程序 View 代码将以 HTTP 响应的形式返回到 Web 浏览器。

您的网络浏览器解析包含 CSS/HTML 和 Javascript 的响应并呈现 View /页面。

您的浏览器现已与服务器断开连接。除非您执行按下按钮或在地址栏中输入不同的 URL 等操作,否则您的浏览器将不会再次与您的服务器通信。另一方面,您的服务器当前没有与客户端浏览器通信的方式,您的服务器已与客户端/Web 浏览器断开连接。

这是一个标准的 HTTP 请求/响应。

您正在寻找软件中的推送通知功能。由于您使用的是 ASP.NET 并且不熟悉 Javascript,因此 SignalR 将是通过具有长轮询回退功能的 Web 套接字在 Web 浏览器和服务器之间保持打开连接的最佳方式。 SignalR 非常易于使用和设置。

长轮询是您当前正在做的事情,您每 5 秒检查一次是否有更改。您可以继续执行此操作,但不必通过重新加载再次获取所有 HTML/CSS 和 Javascript。只需检查其他一些 Controller /API 端点的状态更改,然后仅在发生状态更改时重新加载整个页面。从您当前的需求来看,这实际上是一个相当可扩展的解决方案。

关于javascript - 如何在MVC中动态重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59011144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com