Wpis z mikrobloga

Piszę bibliotekę której do uploadu plików, której chciałbym używać na kilkunastu różnych stronach. Mam własny obiekt "Data" zawierający plik i metadane do pliku. obiekt data ma funkcję .send() która pakuje dane z obiektu do FormData() i wysyła przez XMLHttpRequest.

Chciałbym mieć możliwość stworzenia dla takiego uploadu paska postępu. Wiem że jest EventListener na 'progress' jednak nie wiem jak go użyć w tym konkretnym przypadku - gdy nie znam nazwy elementu w HTML w którym miałby się taki progress znajdować.

Jak ugryźć taką sprawę?
Mój aktualny kod:
http://pastebin.com/LFCjAeRq
#programowanie #javascript #webdev
  • 6
nie znam nazwy elementu w HTML


@lol2x: nie wiem jak to wpiąć w prototyp w JS, ale może da się to jakoś sparametryzować
ps. nie boisz się, że nazwa Data będzie się gryzła z milionem innych?
@ppawel: tylko jak do takiego parametru potem we frontendzie się dostać i odczytywać jego zmiany?
Mam ją w 2 namespace, żeby było czytelnie to fragment kodu wrzuciłem po prostu bez tego :)
@lol2x: wiem że to droga na skróty ale jeśli JQ wchodzi w grę to:

a) zainstaluj plugin jquery-form

b)

$('#file-upload-form').ajaxSubmit( {
beforeSubmit: () => {
} ,
uploadProgress: ( event , position , total , percent ) => {
} ,
success: ( response ) => {
} ,
error: ( xhr ) => {
} ,
} );
tylko jak do takiego parametru potem we frontendzie się dostać i odczytywać jego zmiany?


@lol2x: myślałem o przeciwnym kierunku - tak, aby to pluginowi podać id/selektor/itd. paska jako parametr

Najczyściej pewnie jakiś event byłoby wysyłać z pluginu, a potem jakoś go odbierać po drugiej stronie - wtedy byłoby to dość reużywalne.