服务器发送的事件如何与ASP.NET MVC一起使用?

v

我有一个ASP.NET MVC应用程序,并且正在使用服务器发送的事件。该应用程序工作正常,但我对它的工作方式有一些疑问。下面是控制器代码。

public class HomeController : Controller
    {
        //
        // GET: /Home/
        public ActionResult Index()
        {
            ViewBag.Message = "SSE WITH ASP.NET MVC";
            return View();
        }
        public ActionResult Message() 
        {
          var result = string.Empty;
          var sb = new StringBuilder();
          sb.AppendFormat("data: {0}\n\n", DateTime.Now.ToString());
          return Content(sb.ToString(), "text/event-stream");

      }
    }

下面是视图代码。

<script>

    function contentLoaded() {
        var source = new EventSource('home/message');
        //var ul = $("#messages");
        source.onmessage = function (e) {

            var li = document.createElement("li");
            var returnedItem = e.data;
            li.textContent = returnedItem;
            $("#messages").append(li);
        }
    };

    window.addEventListener("DOMContentLoaded", contentLoaded, false);
</script>
<h2>@ViewBag.Message</h2>
<p>
    SSE WITH ASP.NET MVC
</p>
<ul id="messages">
</ul>

我的问题是:1.时间仅每3秒更新一次。为什么会这样呢?2.如何确定控制器动作被调用的频率?

罗伯特

时间仅每3秒更新一次。为什么会这样呢?

因为您Controller要返回ActionResult包含单个数据的数据,然后关闭连接,所以浏览器等待3秒钟,然后重新打开它。

如何确定控制器动作被调用的频率?

您可以使用相同的方法来确定其他任何方法的调用频率,包括循环和延迟

SSE是服务器发送事件,您可以从服务器端管理所有这些内容,只有在您明确保持连接打开的情况下,它才能正常工作,否则您也可以从客户端进行AJAX轮询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 ASP.NET CORE 上使用服务器发送的事件时如何检测断开连接?

如何在ASP.NET服务器端将Bootstrap按钮与单击事件一起使用

如何使用ASP.NET MVC + SignalR强制服务器不断发送事件数据?

在C#中实现发送服务器已发送事件(无ASP.NET / MVC / ...)

服务器发送带有标准asp.net mvc的事件(事件源),导致错误

如何通过.net MVC解决方案将CI服务器与外部配置文件一起使用

如何使用ASP.NET发送FormData并在服务器端处理它

如何将RDLC报表与ASP.Net MVC中的ReportViewer控件一起使用?

使T4MVC与ASP.NET 5一起使用

Bootstrap无法与ASP.net MVC捆绑一起使用

为什么将ReactJS与ASP.NET CORE MVC一起使用?

将ASP.NET MVC验证与jquery ajax一起使用?

ASP.NET MVC不能与表单身份验证一起使用

将Ajax.BeginForm与ASP.NET MVC 3 Razor一起使用

将PagedList与ViewModel ASP.Net MVC一起使用

将实体框架,ASP.NET MVC核心和PostgreSQL与Heroku一起使用

在ASP.NET Core 2.1中将ValidateModelAttribute与MVC视图一起使用

淘汰赛:foreach不能与asp.net MVC一起使用

ASP.NET MVC延迟加载无法与ICollection一起使用

在MVC中将ASP.NET Identity与我自己的实体一起使用

路由如何与 asp.net mvc 中的默认控制器和操作一起使用

如何使用ASP.NET MVC通过Ajax将选中的行发送到服务器?

如何在.NET MVC Core 5中将WebMatrix方法与Npgsql一起使用

如何从服务器端(asp.net web api / mvc)向 xamarin 表单应用程序发送请求?

在AspNet vNext(MVC 6)中将NLog与asp-net布局渲染器一起使用

如何首先在ASP.NET MVC中将Identity与Entity Framework数据库一起使用

如何一起使用AngularJS作为前端框架和ASP.NET MVC作为后端框架?

如何将Jquery与Asp.Net Mvc Core 2.2的html助手一起使用

如何在ASP.NET MVC 6中继续将ModelState与RedirectToAction一起使用?