Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wczytywanie listy plików za pomocą jquery oraz sprawdzanie ich statusu., proszę o pomoc
1q2w3e4r
post
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 6.05.2011

Ostrzeżenie: (10%)
X----


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.
  1. <!DOCTYPE HTML>
  2. <title>Test listy plików.</title>
  3. </head>
  4. <table id="my_files">
  5. <thead><tr><td class="filename">Nazwa</td><td class="filesize">Rozmiar</td><td class="status">Status</td><td class="download">Pobierz</td><td>Usuń</td></tr></thead>
  6. <tr id="plik1">
  7. <td class="filename"><span>Nazwa_pliku_pierwszego.mp3</span></td>
  8. <td class="filesize">5,1 MB</td>
  9. <td class="status">Pobrano</td>
  10. <td class="pobierz"><span><a href="http://jahs.domena.pl/d3245/324543345/3425/Nazwa_pliku_pierwszego.mp3">Pobierz</a></span></td>
  11. <td class="usun"><span><input type="checkbox" name="delete_file[]" value="1344955" /></span></td>
  12. </tr>
  13.  
  14. <tr id="plik2">
  15. <td class="filename"><span>Nazwa_pliku_drugiego.mp3</span></td>
  16. <td class="filesize">5,1 MB</td>
  17. <td class="status">Oczekuje</td>
  18. <td class="pobierz">-</td>
  19. <td class="usun">-</td>
  20. </tr>
  21.  
  22. <tr id="plik3">
  23. <td class="filename"><span>Nazwa_pliku_trzeciego.mp3</span></td>
  24. <td class="filesize">5,1 MB</td>
  25. <td class="status">Pobieranie 32%</td>
  26. <td class="pobierz">-</td>
  27. <td class="usun">-</td>
  28. </tr>
  29.  
  30. <tr id="plik4">
  31. <td class="filename"><span>Nazwa_pliku_czwartego.mp3</span></td>
  32. <td class="filesize">5,1 MB</td>
  33. <td class="status">Oczekuje</td>
  34. <td class="pobierz">-</td>
  35. <td class="usun">-</td>
  36. </tr>
  37. </table>
  38. </html>



Dane o danym pliku są sprawdzane przez wywołanie linka tego typu generowanego z bazy.
Kod
http://domena.pl/filesize.php?filename=Nazwa_pliku_trzeciego.mp3&full_filesize=178655

W zwrocie otrzymujemy ciąg w json:
Kod
{"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:
Kod
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.

Ten post edytował 1q2w3e4r 12.05.2012, 16:00:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 10:34