Ergebnis 1 bis 10 von 10
  1. #1
    Bueddl ist offline Grünschnabel
    registriert
    25-01-2009
    Beiträge
    8

    input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Hallo nochmal zusammen

    ich sitze immernoch an meinem Ajax-FileUploader und hab festgestellt, dass die Funktion getAsBinary (input type=file hat diese funktion) bei größeren Dateien (schon ab 1 MB ) sehr sehr langsam wird und mitunter bei 13MB 10-20 secs braucht und dadurch die ganze Seite/Scripte anhält...
    Code:
    var fileInput = document.getElementById("fileinput1");
    data = fileInput.files.item(0).getAsBinary();
    Gibt es andere/schnellere Möglichkeiten? Oder wenigstens nen weg, wie ich verhindern kann, dass alle Scripte anhalten, wenn diese Funktion aufgerufen wird?

    Bin für jede Hilfe dankbar

    Viele Grüße und nen schönen Abend,
    Bueddl

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.756

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Da das Ganze sowieso nicht in allen Browsern funktioniert, würde ich es ganz anders machen (Datei in einem versteckten iFrame versenden).
    Aber da JS nicht multithreadfähig ist wirst du ziemlich sicher keine Lösung für das "Einfrieren" des Browsers finden.

  3. #3
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Zitat Zitat von kkapsner Beitrag anzeigen
    Aber da JS nicht multithreadfähig ist wirst du ziemlich sicher keine Lösung für das "Einfrieren" des Browsers finden.
    Mann kann die Funktion nach einigen Zeilen unterbrechen und einen Timeout setzen.
    edit: Aber ist natürlich nicht ratsam und rumgehacke.

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.756

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Wenn die Funktion getAsBinary schon alleine so lange braucht kann man da auch mit einem Timeout nichts machen...

  5. #5
    Avatar von Junkee[]
    Junkee[] ist offline Lounge-Member
    registriert
    08-05-2009
    Ort
    Leonberg
    Beiträge
    3.169

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    in der Funktion getAsBinary würde es gehen, aber die ist ja nativ.

  6. #6
    Bueddl ist offline Grünschnabel
    registriert
    25-01-2009
    Beiträge
    8

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    danke, wollte das ganze aber bewusst als "experimentelle technik" einsetzen...

  7. #7
    Avatar von Castell
    Castell ist offline Grünschnabel
    registriert
    23-10-2010
    Ort
    Bayern
    Beiträge
    5

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Hallo Bueddl,

    sowohl JS als auch PHP haben keine Möglichkeiten zum Multithreading.
    Allerdings lässt sich Multithreading mit einigen tricks simulieren, mit asynchronen Timern zum Beispiel,
    was allerdings einen nicht allzu kleinen Programmieraufwand bedeutet.

    Zum Glück gabs ein paar schlaue Menschen, die Klassen entworfen haben, die für einen das Threading übernehmen,
    damit dürfte der Aufwand, JS code auf (pseudo) Multithreading zu portieren sehr viel geringer ausfallen, als beim selber basteln.

    Hier ein Beispiel:
    Simulate Threading Using Javascript « Hugoware

    viel Spass,
    Castell

  8. #8
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Zitat Zitat von Castell Beitrag anzeigen
    Zum Glück gabs ein paar schlaue Menschen, die Klassen entworfen haben, die für einen das Threading übernehmen,
    damit dürfte der Aufwand, JS code auf (pseudo) Multithreading zu portieren sehr viel geringer ausfallen, als beim selber basteln.
    Oder man verwendet gleich https://developer.mozilla.org/En/Using_web_workers

  9. #9
    Avatar von Castell
    Castell ist offline Grünschnabel
    registriert
    23-10-2010
    Ort
    Bayern
    Beiträge
    5

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Klingt auch nicht schlecht =)
    Aber das scheint eine Browsergebundene Geschichte zu sein...?

  10. #10
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: input type "file" : lange Ausführungszeit der Funktion "getAsBinary()"

    Noch, ja. http://ejohn.org/blog/web-workers/ hier steht das es nur in Firefox 3.5 and Safari 4 implementiert ist (bzw. war, der Artikel ist von 2009), aber ist sicher noch nicht universell einsetzbar. Wobei aber auch Timeouts hier in dem Fall nicht helfen

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 28-09-2010, 14:02
  2. Antworten: 14
    Letzter Beitrag: 12-06-2010, 14:31
  3. Antworten: 3
    Letzter Beitrag: 30-05-2006, 21:40
  4. "input type=file" direkt anzeigen
    Von Toxictype im Forum Serverseitige Programmierung
    Antworten: 12
    Letzter Beitrag: 27-08-2004, 20:46
  5. input type="file" accept="klappt nicht!"
    Von riddler im Forum Allgemeines
    Antworten: 0
    Letzter Beitrag: 04-05-2001, 15:44

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •