Verwalten von Sitzungsinformationen

Speichern von Informationen im Beispiel

Die Beispielwebseite verwaltet Daten mithilfe von Cookies. Cookies sind einfach persistente Name-Wert-Paare, die der Webbrowser für Sie speichern kann.

Wenn die Webseite geschlossen wird, wird die Funktion Shutdown ausgeführt. Herunterfahren ruft die Funktion SetPendingCookies auf. Diese Funktion durchläuft die Downloadsammlungsliste, die im Dropdownlistenfeld selDLC gespeichert ist. Wenn eine Downloadsammlung unvollständige Elemente enthält, ruft die Funktion die SetCookie-Methode auf und übergibt einen Namen und einen Wert. Die Namenszeichenfolge wird bestimmt, indem ein ganzzahliger Wert an den konstanten Wert WMPDLC angefügt wird, der in der Variablen g _ sPreCookie gespeichert wird. Für die dritte ausstehende Downloadsammlung lautet der Cookiename beispielsweise "WMPDLC2", da der Zählmechanismus nullbasiert ist. Während jedes Cookies erstellt wird, erhöht die Funktion die globale Variable g _ Ausstehend, um die Anzahl ausstehender Downloads beizubehalten. Der Code wird hier zur Vereinfachung reproduziert:

// Write cookies for pending downloads.
function SetPendingCookies()
{
    g_Pending = 0; // Init the pending count.
    
    for(var i = 0; i < selDLC.length; i++)
    {
        var sCookieName = g_sPreCookie + i.toString(10);
        var sCookieVal = selDLC.options[i].text;
    
        // Write a cookie for each pending download.    
        if(IsDLCComplete(sCookieVal.valueOf()) == false)
        {      
            SetCookie(sCookieName, sCookieVal);
            g_Pending++;
        }        
    }
}

IsDLCComplete ist eine Hilfsfunktion, die einfach jedes Downloadelement in der Downloadsammlung durchläuft, um zu bestimmen, ob ein Element aussteht. Wenn ein ausstehendes Element vorhanden ist, gibt die Funktion false zurück.

SetCookie ist die Funktion, die das Cookie erstellt.

Wenn SetPendingCookies zurückgegeben wird, erstellt Shutdown das Count-Cookie, in dem der Wert aus der Variablen g _ Ausstehend gespeichert wird. Dieser Wert ist wichtig, da die Webseite eine Möglichkeit benötigt, um zu bestimmen, wie viele Cookies beim erneuten Laden abgerufen werden sollen. Der Name des Count-Cookies wird in der Variablen g _ sCountCookie gespeichert.

Abrufen von Informationen im Beispiel

Wenn die Webseite geladen wird, wird die Init-Funktion ausgeführt. Zuerst ruft die Funktion GetPendingDlCount auf, um das Count-Cookie abzurufen. Als Nächstes wird dieser Wert in der Variablen g _ Ausstehend gespeichert. Anschließend wird die PopulateDLList-Funktion aufgerufen, um jedes Downloadsitzungscookie abzurufen und dem Dropdownlistenfeld seinen Bezeichner hinzuzufügen. Hier ist der Code für diese Funktion:

// Fill the drop-down list with pending download collection IDs.
function PopulateDlList(iCount)
{
    ClearList(selDLC);
     
    // For each cookie, add the value to the SELECT element.
    // The value represents a download collection ID.  
    for (var j = 0; j < iCount; j++)
    {
        var sCookieName = g_sPreCookie + j.toString(10);        
        var sCookieVal = GetCookie(sCookieName);
        DelCookie(sCookieName); // Don't leave the cookies lying around. 
  
        if(sCookieVal != null)
        {      
            var oOption = document.createElement("OPTION");
            oOption.text = sCookieVal;
            oOption.value = j;
            selDLC.add(oOption); 
        }          
    }
}

Die ClearList-Funktion entfernt alle Elemente aus dem Listenfeld.

Die Funktion wechselt dann in eine Schleife. Jeder Cookiename wird als Zeichenfolge erstellt, und dann wird das Cookie durch Aufrufen der Hilfsfunktion GetCookie abgerufen. Nach dem Abrufen wird das Cookie durch Aufrufen von DelCookie gelöscht. Wenn das Cookie über einen Wert verfügt, wird der Wert dem Listenfeld hinzugefügt. Diese Aktion initiiert das onChange-Ereignis für die selDLC-Liste, die wiederum die Handlerfunktion mit dem Namen OnSelectDLC aufruft. Dies ist die gleiche Funktion, die ausgeführt wird, wenn der Benutzer eine Downloadsammlung auswählt. es ist der Code, der das Listenfeld des Downloadelements ausfüllt.

Verwenden des Download-Managers