Ergebnis 1 bis 5 von 5

Thema: [jQuery,Javascript]Problem bei $.ajax laden von scripts in rekursiver funktion

  1. #1

    [jQuery,Javascript]Problem bei $.ajax laden von scripts in rekursiver funktion

    Hallo,

    ich habe ein Problem beim laden von mehreren scripts in der Funktion. Seltsamerweise
    wird die funktion nur 2x durchlaufen und bleibt dann stehen.
    Hat einer ne Idee?

    Code:
    http://pastebin.com/szB6uXPB



  2. #2
    Ich kann nicht bestätigen, dass es nur 2x durchläuft, wobei ich die Addressen geändert habe.
    Hast du versucht deine Seite mit Firebug zu debuggen?
    Wobei die Prozentanzeige IMO falsch ist, wolltest du nicht folgendes?
    Code (JAVASCRIPT):
     
                                                $(RLoad.PreloadView).html('Loading: ' + Math.round( (RLoad.LoadCount - 1) / RLoad.Scripts.length * 100) + '% / 100%');
    

    Geändert von Drakes (03.07.2011 um 19:54 Uhr)

  3. #3
    Die Sache ist diese, dass es mir sagt = File in js/rajax/jquery.rajax.transition.js could not be loaded.
    obwohl der Request im Dragonfly(opera) aufgelistet ist.

    Aber scheinbar gibt $.ajax die error message aus. Sehr verwirrend.

    Habe mal den transition teil rausgenommen..scheint dann zu funktionieren
    nur zeigt dann 25%/100% an was auch nich stimmt...

    Die Fehlerkonsole zeigt nichts an.

    Bei der Prozentangabe, nunja, nach deiner rechnung wäre es ja
    ((0 - 1) / 5) = -0,2 * 100 = -20
    ((1 - 1) / 5) = 0 * 100 = 0
    ((2 - 1) / 5) = 0,2 * 100 = 20
    usw..

    Aber es is irgendwie so als würde er 1 Prozent mehr sagen, hmm...

    Geändert von Hendy (03.07.2011 um 21:21 Uhr)

  4. #4
    Ja, meine Prozentangabe war falsch aber sie ging wenigstens bis 100%. xD
    Ich denke dein ++ ist nicht optimal gesetzt, bei der aktuellen variante wird die Rekursion einmal zu oft ausgeführt.
    Geändert habe ich: das remove (hat nich geklapt), +1 verschoben, <= zu < und RLoad.LoadCount / RLoad.Scripts.length * 100
    Meine Variante:
    Code (JAVASCRIPT):
     
     
        var RLoad = {};
                RLoad.LoadCount = 0;
                RLoad.Scripts = [
                        'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js',
                        'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js',
                        'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js',
                        'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js',
                        'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js'
                ];
        $(function() {
                //$.ajaxSetup({ cache: true });
     
                RLoad.PreloadView = $('<div style="position:absolute; top:7px; left:7px; border:1px solid black; background:white; padding:3px; font-size:10pt; font-family:\'courier\'" />').appendTo($('body'));
     
                function autoloadScripts(url)
                {
                        if(RLoad.LoadCount < RLoad.Scripts.length)
                        {
                                $.ajax({
                                        url: url,
                                        dataType: 'script',
                                        success: function() {
    										    RLoad.LoadCount += 1;
                                                $(RLoad.PreloadView).html('Loading: ' + Math.round( RLoad.LoadCount / RLoad.Scripts.length * 100) + '% / 100%');
                                                autoloadScripts(RLoad.Scripts[RLoad.LoadCount]);
                                        },
                                        error : function() {
                                                $('body').append('File in ' + url + ' could not be loaded.');
                                        }
                                });
                        }
                        else
                        {
                                $(RLoad.PreloadView).remove();
                        }
                }
     
                autoloadScripts(RLoad.Scripts[0]);
        });
     
    

  5. #5
    Ja danke für die Hilfe,
    habe das Problem jetzt gelöst.

    Hatte natürlich nicht daran gedacht, dass das JS beim request nicht nach gültigkeit vom Dragonfly geprüft wurde.
    Die transition datei hatte einen Fehler.
    War nur ein ) dran Schuld das es nicht ging.

    Kann geschlossen werden!

Berechtigungen

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