Ich habe mit einer Klasse zu tun, die etwa 2-3 Minuten dauert, um zu laden. Dieses Objekt befindet sich auf der Serverseite eines Silverlight/ASP/WCF-Projekts. Nach dem Laden enthält dieses Objekt eine Liste von 5 000 000 kleineren Objekten, die zur Berechnung verwendet werden.Großes Objekt im Silverlight/ASP.NET/WCF-Projekt?
Es macht den Benutzern nichts aus, 2 oder 3 Minuten zu warten, wenn die Anwendung geladen wird, aber sie wollen nicht jedes Mal neu warten, wenn sie etwas berechnen.
Ich möchte Ihre Eingabe über meine Optionen.
Option A: Behalten Sie das große Objekt in einer Sitzungsvariablen bei. Einige Leute behaupten, dass die Sitzungsvariable Gift ist ... besonders wenn sie mit einem großen Objekt verwendet wird. Ist es wirklich so schlimm?
Option B: Laden Sie das große Objekt, wenn der Server Start, dann einen Weg finden geteilt oder duplizieren dieses Objekt zwischen den Sitzungen
Option C (Dies funktionieren würde ... aber es ist nicht perfekt): Erstellen Sie ein zweites Objekt, das das Objekt 5 000 000 aus meiner zeitaufwendigen Klasse kopiert und dann an die Clientseite sendet. Diese Lösung ist jedoch nicht perfekt, da es sich bei diesen 5 000 000 Objekten um sensible Daten handelt, die auf der Client-Seite nicht "wie besehen" zugänglich sein sollten.
Können Sie Hinweise geben, warum es sinnvoll ist, 5.000.000 Objekte auf den Client zu kopieren? Können Sie die Berechnung nicht auf dem Server durchführen, auf dem die Daten bereits existieren? –
Das Ausführen der Berechnung auf der Serverseite ist das, was ich tun möchte ... deshalb würde ich lieber die Option A oder B verwenden. Option C ist eher eine Art Workaround. –
die Daten, die Sie auf dem Server gesendet haben, können verschlüsselt werden. Aber wenn Sie Daten in Cookies speichern, müssen Sie auch Ihr Objekt serialisieren ... und Cookies haben begrenzten Speicherplatz. –