js网络工作者和PHP

时间:2017-05-23 19:32:02

标签: javascript php web-worker

我正在尝试在PHP中创建一个<input placeholder="example"> <input placeholder="example" value="12345"> <br> <input placeholder="example" type="number"> <input placeholder="example" type="number" value="12345">文件。我创建的应用程序有大约30个活跃用户。我希望每个用户在后台定期运行一个JavaScript web-worker,调用一个调用PHP文件来运行的PHP文件(通过ajax / xmlhttprequest)。

当通过Worker调用PHP文件时,JavaScript Web-Worker会阻止执行主要的PHP请求,因为它们来自同一个浏览器吗?

1 个答案:

答案 0 :(得分:0)

要做到这一点,您需要在执行文件时设置一个状态来关闭执行。使用Workers上的回调按状态过滤执行(可以是HTTPs status)并关闭套接字监听器,同时某些回调未被触发或某些状态(某些存储或变量)未被某个值填充

MDN page about Web Workers

为例

example.html :(主页):

var myWorker = new Worker('my_task.js');

myWorker.onmessage = function(oEvent) {
  //take current status from the worker from oEvent
  status = oEvent.status;
  console.log('Worker said : ' + oEvent.status);
};
//if ok, send an order to continue receiving php calls
if (status == 200)
  //or other function
  myWorker.postMessage('someorder');

my_task.js(工人):

postMessage("Worker listening");

onmessage = function(oEvent) {
  //if status is not ok, worker is busy and can't do anything
  if (status != 200)
     postMessage('Hi ' + oEvent.data);
};

你是如此普遍,以至于我脑子里唯一能解决你问题的东西。