Wczytywanie listy plików za pomocą jquery oraz sprawdzanie i


(1q2w3e4r) #1

Witam,

Potrzebuję wczytywać dane do odpowiednich komórek tabeli za pomocą javascript, a konkretniej chyba najlepiej użyć jquery. Nie znam jeszcze jquery, a potrzebuję to zrobić dlatego zwracam się do Was z prośbą o pomoc.

Sprawa wygląda tak. Mam listę plików mp3. Pliki są w różnych lokalizacjach, a trzeba sprawdzać info o pliku za każdym razem.

Tak wygląda aktualnie struktura listy plików. Ładowana jest ona z bazy danych. Proszę zauważyć na status plików. Jeśli status jest "Pobrano" nie sprawdzamy już danych o tym pliku aby niepotrzebnie nie wysyłać requestów.

Test listy plików.

| Nazwa | Rozmiar | Status | Pobierz | Usuń |
| Nazwa_pliku_pierwszego.mp3 | 5,1 MB | Pobrano | Pobierz | |
| Nazwa_pliku_drugiego.mp3 | 5,1 MB | Oczekuje | - | - |
| Nazwa_pliku_trzeciego.mp3 | 5,1 MB | Pobieranie 32% | - | - |
| Nazwa_pliku_czwartego.mp3 | 5,1 MB | Oczekuje | - | - |

[/code] Dane o danym pliku są sprawdzane przez wywołanie linka tego typu generowanego z bazy.
[code] http://domena.pl/filesize.php?filename=Nazwa\_pliku\_trzeciego.mp3&full\_filesize=178655
W zwrocie otrzymujemy ciąg w json:

{"filename":"Nazwa_pliku_trzeciego.mp3","actual_filesize":118655,"refresh_time":1336728247,"status":"downloading","procent":"32"}

status może być free, downloading, downloaded Cała lista powinna być odświeżana co 10s, ale TYLKO tych plików, które nie mają statusu "Pobrano" aby nie wysyłać requestów. Chciałbym aby to było wydajne czyli szybko się ładowało oraz aby jeśli to możliwe działało w każdej przeglądarce. Widziałem kiedyś takie zapytania do plików. Nie wiem czy są one wydajne:

function makeRequest() {

  http_request = false;

  if (window.XMLHttpRequest) {

      http_request = new XMLHttpRequest();

      if (http_request.overrideMimeType) {

        http_request.overrideMimeType('text/html');

      }

  } else if (window.ActiveXObject) { // IE

      try {

        http_request = new ActiveXObject("Msxml2.XMLHTTP");

      } catch (e) {

        try {

            http_request = new ActiveXObject("Microsoft.XMLHTTP");

        } catch (e) {}

      }

  }

  if (!http_request) {

      return false;

  }

  http_request.onreadystatechange = requestc;

  http_request.open('GET', '/dlprogress/'+Math.random(), true);

  http_request.send(null);

}

Nie znam niestety jquery. Proszę o jakieś gotowe rozwiązanie na tej przykładowej liście. Z góry dziękuję za pomoc.