Javascript正在侦听数据更改&触发重新加载

时间:2017-12-08 16:51:09

标签: javascript jquery jquery-mobile

我在PHP中发送了一个服务器发送事件,它显示了客户端的库存信息并实时更新。那部分效果很好。挑战是我想在库存= 0时触发重新加载。注意:我使用的是jQuery Mobile 1.4.5

这是我的代码:

var source = new EventSource('listener.php');
source.onmessage = function(msg) {
document.getElementById('inv').innerHTML = msg.data; 
};

source.addEventListener('msg', onMessageHandler,false);

function onMessageHandler(msg) {
var inventory = msg.data;
};

// Trying to Fire Something like this //
//if (inventory = 0) {
//setTimeout(function() {    
//location.reload(true) 
//},5000);

感谢您的任何建议:)

2 个答案:

答案 0 :(得分:0)

观察范围界定:

var source = new EventSource('listener.php');
source.onmessage = function(msg) {
  document.getElementById('inv').innerHTML = msg.data; 
};

source.addEventListener('msg', onMessageHandler,false);

function onMessageHandler(msg) {
var inventory = msg.data;
 if (inventory === 0) {
    setTimeout(function() {
      location.reload(true);
    }, 5000);
  }
};

答案 1 :(得分:0)

感谢您的建议。两者都有很大的帮助。如果其他任何人遇到类似的挑战,这对我有用:

var source = new EventSource('listener.php');
source.onmessage = function(msg) {
  document.getElementById('inv').innerHTML = msg.data;
  console.log(msg.data);
  var x = msg.data;
  if (x == 0) {
    setTimeout(function() {
      window.location.reload(true);
      // Or any of the 1000's of other ways to reload
    }, 1000);
  }
};

source.addEventListener('msg', onMessageHandler,false);

function onMessageHandler(msg) {
  var inventory = msg.data;
};