Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

My Solution to Collaborative Stars

92 views
Skip to first unread message

Omer Braha

unread,
Jan 8, 2020, 11:09:59 AM1/8/20
to Intro to JavaScript
var table = document.getElementById('star_table');
var stars = table.getElementsByTagName('img');

var updateStarsInterval = function(){
  var req = new XMLHttpRequest();
  req.open('GET', '/collab.py');
  req.onreadystatechange = handleStars;
  req.send();
}

var handleStars = function() {
  if (this.readyState == 4 && this.status == 200) {
    for (var i=0; i < 100; i++) {
      stars[i].src = this.responseText[i]==1 ? 'star_on.gif' : 'star_off.gif';
    }
  }
};

var toggleStar = function(e) {
  var n = e.target.id.substring(5);
  var s = e.target.src.includes('off') ? 1 : 0;  
  var req = new XMLHttpRequest();
  var params = "n="+n+"&s="+s;
  console.log(params);
  req.open('POST', '/collab.py', true);
  req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  //req.open('GET', '/collab.py?n='+n+'&s='+s);
  req.onreadystatechange = handleStars;
  req.send(params);
};
table.addEventListener('click', toggleStar, false);
window.setInterval(updateStarsInterval, 10000);
Reply all
Reply to author
Forward
0 new messages