GIF-Animation steckt fest während AJAX Interaktion

  • Hallo,

    ich hab folgendes Problem:

    Ich übersende ein Formular mit $.post (jQuery), wobei zu Beginn eine AJAX Lade Animation angezeigt wird. Die Seite, die als Callback zurückkommt ist recht groß. Als Callback lade ich natürlich das Resultat in einen DIV Container, der Anfangs versteckt wird. So weit so gut. Danach wird mit $.getScript eine universale JS Datei geladen, die ein paar Funktionsaufrufe enthält, die mit .live() nicht möglich sind, weswegen das $.getScript zwingend verwendet werden muss. Als Callback-Anweisung nach $.getScript habe ich notiert, dass, dass der versteckte Inhalt, der zuvor geladenen Seite mittels $.post per .animate() runtergeslidet wird, und danach die AJAX Lade-Animation ausgefadet wird. Funktioniert alles sehr gut.

    Problem:

    Während $.getScript arbeitet bleibt die AJAX-Lade-Animation kurz stecken, danach wird die .animate() Funktion, danach die fadeOut() Funktion korrekt ausgeführt, weswegen man daraus schließen kann, dass $.getScript dafür verantwortlich ist. Das Interessante: beim Ausführen der $.post() - Anweisung passiert das nicht. Auch die Anweisung des FadeOuts VOR derm $.getScript zu notieren hilft nicht...

    Hat jemand damit Erfahrung, bzw kann das daran liegen, dass die $.ajax() Anweisung intern hinter $.getScript das Argument async auf false gesetzt hat ??

    Lg
    Matze

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • Ja, passiert in allen Browsern.

    Hab mir mal die Dev Version von jQuery angeguckt, da steht folgendes unter $.getScript():

    Code
    [FONT=monospace]getScript: function( url, callback ) {[/FONT]
    
    
        return jQuery.get( url, undefined, callback, "script" );}

    Standardmäßig ist in $.ajax() async auf true gesetzt, und $.getScript() ändert daran nichts.

    Ideen?

    Okay ich sollte noch folgendes erwähnen:

    In dem geladenen Javascript sind folgende Anweisungen enthalten:

    Code
    $('input.uiCheckboxDefault').checkbox();
    $('#interestsRegisterList').jScrollPane({animateScroll: true, verticalDragMinHeight: 20});
    $('#portraitRegisterList').jScrollPane({animateScroll: true, verticalDragMinHeight: 20});

    Habe jetzt rausgefunden, dass die Blockade vorallem durch Line 1 verursacht wird - es handelt sich dabei um Checkbox und Scroll-Plugins für jQuery - aber das seltsame ist eben, dass es irrelevant ist, ob ich das FadeOut dieser Animation VOR $.getScript() notiere und $.getScript() ins callback schmeiße, die Animation stottert trotzdem...

    PHP
    if(isset($this) || !isset($this)){ // that's the question...

    Einmal editiert, zuletzt von synaptic (3. Oktober 2011 um 23:23) aus folgendem Grund: beiträge fusioniert, nutz bitte die editfunktion

  • stottert oder stockt?

    ich hab grad spontan die idee, dass es ggf auch an rechenpower liegen könnte... javascript frisst teilweise echt derbe ressourcen...

    Aber ne GIF-Ani im Vergleich garnix - und mein Rechner ist doch nicht gerade ein schwacher Kollege, also ne Gif Animation und JavaScript sollte der Rechner schon zusammen packen - wieviel meiner tollen Rechnerleistung der Browser aber beanspruchen darf, ist wieder eine andere Frage... :smilie051: Es lebe Chrome :P

    PHP
    if(isset($this) || !isset($this)){ // that's the question...