【问题标题】:how to send xmlhttprequest continuously in webworker?如何在 webworker 中连续发送 xmlhttprequest?
【发布时间】:2017-07-19 15:35:25
【问题描述】:

我是 webworker 的新手,但我设法将 xmlhttprequest 发送到我的 rest api,然后我得到了 json。但我想一次又一次地发送这个请求(循环),直到页面处于活动状态。 我实际上想实时显示值。我想制作一个简单的 Web 应用程序,当数据插入数据库时​​,我的 webworker 应该在不刷新页面的情况下显示该数据。 有没有更好的方法来做到这一点。请帮助我。 抱歉英语不好。

【问题讨论】:

  • 你在向服务器发送POST 请求吗?
  • 这似乎很适合web sockets
  • 我正在向服务器发出 get 请求。我实际上想将我的硬件(传感器)的一些读数显示到网络上。我的硬件使用对我的 api 的发布请求将数据存储在数据库中。 web worker 也使用 get 请求显示数据。但是当我单击开始按钮启动工作人员时,网络工作人员只能工作一次。我希望工作人员继续发送获取请求并检索数据,直到它没有停止
  • 正如乔治所说,使用 websockets。使用 Web 套接字,您可以从服务器推送到客户端,而不必使用长轮询(您现在尝试什么)。

标签: javascript json ajax asp.net-web-api web-worker


【解决方案1】:

您可以使用EventSource 从服务器获取流,直到.close()Worker 调用,或者消息被传递到Worker 信令Worker 调用.close()

const es = new EventSource("/path/to/server");
es.addEventListener("open", function(event) {
  console.log("event source open")
});
es.addEventListener("message", function(event) {
  // do stuff with `event.data`
  console.log(event.data);
});
es.addEventListener("error", function(event) {
  console.log("event source error", event)
});

button.addEventListener("click", function() {
  es.close();
});

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2015-12-02
    • 2021-06-16
    • 2017-12-06
    • 2012-07-11
    • 2023-03-28
    相关资源
    最近更新 更多