Dzień dobry,
proszę o ocenę jakości kodu oraz czy spełnia on standard czytelności dla innego programisty. Działanie programu polega na stworzeniu tracklisty, która wyświetla aktualnie odtwarzany utwór w zależności od czasu odtwarzacza na stronie. Nazwy utworów oraz miejsce w którym się on zaczyna jest umieszczony w pliku JSON.
class Tracklist{
constructor(className){
this.tracklistSelector= document.querySelector("."+className) ;
this.audio=document.getElementById("audio");
this.songs=null;
this.actualTime=null;
this.span=document.createElement("span");
this.tracklistGenerator();
this.fileGET();
this.timeUpdate();
};
fileGET(){
let request = new XMLHttpRequest();
request.open('GET', 'tracklist.json');
request.onload = function () {
const data = JSON.parse(request.response);
this.songs=data.songs;
}.bind(this)
request.send();
}
timeUpdate(){
this.audio.addEventListener("timeupdate",function(){
this.actualTime= this.audio.currentTime;
this.songsCounter(this.songs);
}.bind(this));
}
songsCounter(tracks){
for(let i=0;i<tracks.length;i++){
if((parseInt(this.actualTime)==tracks[i].time) || ((parseInt(this.actualTime)>tracks[i].time) && (tracks[i+1]!=undefined)&&(parseInt(this.actualTime)<tracks[i+1].time) || (parseInt(this.actualTime)>tracks[tracks.length-1].time ))){
if(tracks[i].name!=this.span.innerHTML){
this.span.innerHTML=tracks[i].name;
}
}
}
}
tracklistGenerator(){
this.span.classList.add("trackname");
this.tracklistSelector.appendChild(this.span);
}
}
ob=new Tracklist("tracklist");