Javascript -定期向服务器发送用户位置数据(多线程)

Javascript - send user location data to server at regular intervals (mulit-threading)

本文关键字:位置 用户 置数据 多线程 服务器 Javascript      更新时间:2023-09-26

我有一个javascript代码,除其他事项外,必须定期将用户的地理位置数据发送到服务器。

如果这是C或Java,我就会为这个任务生成另一个线程,而所有其他功能都在并行线程中进行。

但是考虑到Javascript不支持多线程,我如何完成这个任务?

我找到了一些解决方案指向网络工作者,但鉴于IE只有IE10+支持它,我正在寻找一个更通用的解决方案。

Javascript是单线程的。但是你可以使用setInterval来"模拟"多线程。

function f() {
    send-geolocation
}
setInterval(f, 1000)

setInterval("send-geolocation()", 1000)

您可以使用几乎所有浏览器都支持的setTimeoutclearTimeout函数。

你可以调用递归函数来完成发送位置的任务。

$.ajax()可以使用jquery函数与服务器异步通信

var sender = function(interval, url, collectGeoData) {
  this.interval = interval;
  this.url = url;
  if (typeof collectGeoData == 'function' ) {
        this.collectGeoData = collectGeoData;
  }
  else return null;
  setInterval(send, this.interval);
}
sender.prototype.send = function() {
  var data = this.collectGeoData();
  $.post(this.url, data);
}
var thread = new sender('...',50000, function() { //collecting geo data })`enter code here`;