Heim Backend-Entwicklung C#.Net-Tutorial Detaillierte Erläuterung der Verwendungsfähigkeiten von Session in ASP

Detaillierte Erläuterung der Verwendungsfähigkeiten von Session in ASP

May 18, 2017 am 11:38 AM

Jeder, der ein etwas größeres ASP geschrieben hat, weiß, dass das Session-Objekt wirklich einfach zu verwenden ist. Es kann zum Aufzeichnen der privaten Datenvariablen des Benutzers verwendet werden, was sowohl sicher als auch praktisch ist. Aber wissen Sie wirklich, wie Session funktioniert?

Jeder, der ein etwas größeres ASP geschrieben hat, weiß, dass das Session-Objekt wirklich einfach zu verwenden ist. Es kann zum Aufzeichnen der privaten Datenvariablen des Benutzers verwendet werden, was sowohl sicher als auch praktisch ist. Aber wissen Sie wirklich, wie Session funktioniert? Vielleicht trauen Sie sich, nachdem Sie es verstanden haben, nicht mehr, dieses geliebte und gehasste Objekt zu benutzen. Obwohl die alternative Methode etwas mühsam ist, muss sie nach längerer Überlegung durchgeführt werden.

Lassen Sie uns zunächst über die Vorteile von Session sprechen. Es kann zum Aufzeichnen der privaten Datenvariablen des Kunden verwendet werden. und wird innerhalb des Zeitrahmens nicht verschwinden. Dies ist wirklich eine wichtige Funktion, insbesondere für Systeme mit Elementen, die verwendet werden müssen. Zum Beispiel das Anmeldekonto des Mitglieds, die Uhrzeit, der Status und viele Echtzeitdaten, die aufgezeichnet werden sollten (z. B. das Einkaufssystem, das die Artikel im Warenkorb des Benutzers aufzeichnet). Diese Informationen werden von jedem privat benötigt Benutzer. Normalerweise verwenden Entwickler die Verarbeitung von Sitzungsdatensätzen.

Allerdings besteht die Sitzung in ASP aus Cookiess, und der Server überträgt alle in der Sitzung aufgezeichneten Daten in Form von Cookies an den Browser des Benutzers. Normalerweise speichern Browser diese Cookies, wenn der Benutzer auf einen Link klickt und sich erneut mit dem Server verbindet, sendet der Browser diese Cookies zur Verarbeitung an den Server zurück. Dies ist das Funktionsprinzip von Session. Da die Datenmenge gesendet und zurückgenommen werden muss, wird nicht nur Leitungsbandbreite verbraucht, sondern auch die Leistung verringert, da der Server mehr Ressourcen für die Online-Verarbeitung und Neukonfiguration aufwenden muss Erinnerung. Erste Aktion. Jetzt denken Sie vielleicht: „Ich muss diese Funktion nutzen, also muss ich sie opfern.“ Einerseits geht es jedoch darum, dass jeder lernt, sie weniger zu nutzen Es gibt Alternativen. Als nächstes fällt auf, dass es auch zum Global.asa-Anwendungsobjekt gehört.

Die Anwendung ist auch gut darin, temporäre Daten aufzuzeichnen und zu verarbeiten. Ihre Funktionen und Verwendung sind die gleichen wie bei der Sitzung, aber im Vergleich dazu sind die Daten, die sie aufzeichnet, öffentlich, das heißt, jeder Benutzer kann den Variablenraum gemeinsam nutzen. Im Gegensatz zu Session überträgt die Anwendung die Daten nicht an den Benutzer und liest sie dann direkt im Speicher auf dem Server. Im Vergleich dazu ist die Leistung viel schneller.

Da das Anwendungsobjekt öffentlich ist, muss zunächst ein gemeinsamer Bereich für jeden Benutzer geplant werden, damit jeder Benutzer seinen eigenen Bereich zum Aufzeichnen von Daten haben kann, um den Zweck zu erreichen Simulation der Sitzung. Es gibt jetzt zwei Methoden:

Zuerst initialisieren, erstellen und zuweisen Sie den Benutzerspeicherplatz im Voraus, wenn der Server aktiviert wird. Obwohl diese Methode normalerweise viele Ressourcen beansprucht, sobald der Server gestartet wird Außerdem erspart es den Benutzern in Zukunft jedes Mal, sich die Mühe zu machen, eine Zuweisung vorzunehmen, sobald sie online sind. Es gibt jedoch eine Einschränkung. Da sie sofort nach der Aktivierung initialisiert wird, können wir nur die Schaffung einer bestimmten Menge an Speicherplatz abschätzen. Daher wird diese Methode normalerweise in kleinen Programmen verwendet wie zum Beispiel Chatrooms.

2. Diese Methode sollte als geeigneter für große Anwendungen angesehen werden. Sie verwendet eine dynamische Zuweisungsmethode und beginnt mit der Zuweisung von Ressourcen an den Benutzer, wenn dieser sich zum ersten Mal mit dem Server verbindet. Der Zweck dieser beiden Methoden zur Sitzungssimulation besteht darin, den Verbrauch von Sitzungsressourcen zu reduzieren. Sie können jedoch nicht vollständig ersetzt werden. Wir müssen immer noch ein wenig Sitzung verwenden, was zumindest die Belastung erheblich verringern kann Server.

Die erste Lösung

Zuerst beginnen wir mit der Implementierung der ersten Lösung. Da die Anwendung während der Aktivierung initialisiert wird, müssen wir natürlich von Global.asa ausgehen:

Die Initialisierung ist bereits abgeschlossen, aber wie wird sie verwendet? Wir müssen nur die ursprünglich mit Session gespeicherten Daten wie Kontonummer und Anmeldezeit in das von uns erstellte Anwendungsobjekt ändern, in dem sich der Benutzer anmeldet:

Der Code lautet wie folgt:

'
寻找未被使用的空间 
For
 i = 1 To Application("ClientMax") 
If
 Application("User_Status_" & i) = 0 Then 
'使用者暂时编号 
Session("Index") = i 
'锁定 
Application Application.Lock 
'设成已使用的状态 Application("User_Status_" & i) = 1 '放入变量数据 
Application("User_Ac
count
_" & i) = Account 
Application("User_Log
time
_" & i) = Now()
'解除锁定 
Application.Unlock 
Exit For 
End
 If 
Next
Nach dem Login kopieren


Um benutzerbezogene Variablendaten zu erhalten, gehen Sie wie folgt vor:

Response.Write(Application("User_Account_" & Session("Index"))

Möglicherweise stellen Sie fest, dass Sie Session nicht verwenden möchten. Wie bereits erwähnt, kann der Browser nicht immer mit dem Server interagieren Woher wissen wir, dass dieselbe Person nach dem Lesen der Seite online ist und die Verbindung getrennt wird? Zu diesem Zeitpunkt müssen wir uns auf die Sitzung verlassen. Wir geben dem Benutzer eine Reihe von Echtzeitnummern, und diese Nummer ist der Benutzer. Anhand der Nummer im variablen Feld auf dem Antrag können Sie sich vorstellen, dass es in der Bank viele Safes gibt. Sie haben einen Schlüssel und auf dem Schlüssel befindet sich eine Nummer. Die Nummer auf dem Schlüssel ermöglicht es dem Bankier, Sie zu Ihrem zu führen Eigener Safe. Es gibt noch Raum für Verbesserungen, aber für kleine Anwendungen reicht es aus

Die zweite Option

Bezüglich der vorherigen Option können Sie auch über die Verwendung unseres nachdenken Wenn es um Nummern geht, stellt das Session-Objekt eine „SessionID“-Methode bereit. Unabhängig davon, ob wir sie verwenden möchten, weist der Server jedem Benutzer automatisch eine Nummer zu, und diese Nummer wird nicht wiederholt. Für diese Nummer wird Session.SessionID verwendet. Diese Nummerierung ist eine Aktion, die Session definitiv durchführen wird. Wir können sie verwenden, um das von uns selbst geschriebene Nummerierungsprogramm zu ersetzen, was auch viel Aufwand spart und sogar eine größere Skalierbarkeit bietet . Aber im Grunde hat die erste Lösung immer noch ihre Vorteile, z. B. für kleine Anwendungen, die die Anzahl der Personen begrenzen.

Für eine Website Bei Hunderten, Tausenden oder sogar Zehntausenden von Benutzern wird es mit der vorherigen Lösung definitiv nicht funktionieren. Angenommen, Sie legen die Obergrenze der Benutzer auf 10.000 fest Wenn sich für einen Benutzer 5 Variablen in einem Bereich befinden und eine Variable 32 Bytes belegt, belegen 10.000 mehr als 320.000 K (320 MB). Sobald der Server aktiviert ist, wird so viel Müll in den Speicher gestopft und die Leistung beeinträchtigt Es ist sicher, dass es stark reduziert wurde, bevor es ins Spiel kam, und trotz der geringen Anzahl dieser Zahlen dachte ich, dass meine 512 MB ausreichen würden Sie wissen, dass es nur mehr und nicht weniger ist. Daher besteht die einzige Lösung darin, den Benutzervariablenbereich dynamisch zu konfigurieren und nur dann einen Bereich auszuschneiden, wenn ein Benutzer mit ihm verbunden ist Der Server muss daher nicht im Voraus konfiguriert werden. Was für eine riesige Speichermenge.
Die zweite Option ist relativ einfach zu implementieren. Bitte werfen Sie alle Dinge in die erste Option. Wir müssen nicht zu Global.asa wechseln. Wir müssen nur den Benutzer-Anmeldeort ändern Orte:

Der Code lautet wie folgt:

'锁定 ApplicationApplication.Lock '放入变量数据 
Application("User_Account_" & Session.SessionID) = Account 
Application("User_Logtime_" & Session.SessionID) = Now() '解除锁定Application.Unlock
Nach dem Login kopieren
Um die relevanten variablen Daten des Benutzers zu erhalten, lautet er wie folgt:


Der Code ist wie folgt:

Response.Write(Application("User_Account_" & Session.SessionID))
Nach dem Login kopieren
[Verwandte Empfehlungen]

1.

ASP-kostenloses Video-Tutorial

2.

Einfaches Beispiel für eine ASP-Sitzung

3.

Detaillierte Einführung in die Sitzung in ASP

4.

Lernen Sie, wie Sie das Problem des ASP-Sitzungsverlusts lösen können

5.

Einführung in drei Methoden des Sitzungsobjekts in ASP

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendungsfähigkeiten von Session in ASP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So legen Sie das Sitzungszeitlimit in der SpringBoot-Sitzung fest So legen Sie das Sitzungszeitlimit in der SpringBoot-Sitzung fest May 15, 2023 pm 02:37 PM

Das Problem wurde im Springboot-Projekt-Produktions-Session-Out-Timeout gefunden: In der Testumgebung wurde der Session-Out durch Ändern der application.yaml konfiguriert, nachdem die Session-Out-Konfiguration überprüft wurde In Kraft trat, wurde die Ablaufzeit für die Veröffentlichung in der Produktionsumgebung direkt auf 8 Stunden festgelegt. Allerdings habe ich am Mittag die Rückmeldung von Kunden erhalten, dass die Projektablaufzeit kurz eingestellt wurde. Wenn eine halbe Stunde lang keine Aktion ausgeführt wird, läuft die Sitzung ab und erfordert wiederholte Anmeldungen. Lösen Sie das Problem der Handhabung der Entwicklungsumgebung: Das Springboot-Projekt verfügt über integriertes Tomcat, sodass der in application.yaml im Projekt konfigurierte Sitzungsausgang wirksam ist. Produktionsumgebung: Die Produktionsumgebung ist freigegeben

So beheben Sie Sitzungsfehler So beheben Sie Sitzungsfehler Oct 18, 2023 pm 05:19 PM

Ein Sitzungsfehler wird normalerweise durch den Ablauf der Sitzungslebensdauer oder das Herunterfahren des Servers verursacht. Die Lösungen: 1. Verlängern Sie die Lebensdauer der Sitzung. 3. Verwenden Sie Cookies. 4. Aktualisieren Sie die Sitzung.

Lösung für das domänenübergreifende Problem der PHP-Sitzung Lösung für das domänenübergreifende Problem der PHP-Sitzung Oct 12, 2023 pm 03:00 PM

Lösung des domänenübergreifenden Problems von PHPSession Bei der Entwicklung der Front-End- und Back-End-Trennung sind domänenübergreifende Anforderungen zur Norm geworden. Wenn es um domänenübergreifende Probleme geht, nutzen wir in der Regel Sitzungen und verwalten diese. Aufgrund von Richtlinieneinschränkungen für den Browserursprung können Sitzungen jedoch standardmäßig nicht über Domänen hinweg gemeinsam genutzt werden. Um dieses Problem zu lösen, müssen wir einige Techniken und Methoden verwenden, um eine domänenübergreifende gemeinsame Nutzung von Sitzungen zu erreichen. 1. Die häufigste Verwendung von Cookies zum domänenübergreifenden Teilen von Sitzungen

Was soll ich tun, wenn die PHP-Sitzung nach der Aktualisierung verschwindet? Was soll ich tun, wenn die PHP-Sitzung nach der Aktualisierung verschwindet? Jan 18, 2023 pm 01:39 PM

Lösung für das Problem, dass die PHP-Sitzung nach der Aktualisierung verschwindet: 1. Öffnen Sie die Sitzung über „session_start();“ 2. Schreiben Sie alle öffentlichen Konfigurationen in eine PHP-Datei 3. Der Variablenname darf nicht mit dem Array-Index identisch sein; 4. Überprüfen Sie einfach den Speicherpfad der Sitzungsdaten in phpinfo und prüfen Sie, ob die Sitzung im Dateiverzeichnis erfolgreich gespeichert wurde.

Was ist die Standardablaufzeit von Session PHP? Was ist die Standardablaufzeit von Session PHP? Nov 01, 2022 am 09:14 AM

Die Standardablaufzeit der Sitzungs-PHP beträgt 1440 Sekunden, also 24 Minuten. Das heißt, wenn der Client länger als 24 Minuten nicht aktualisiert wird, läuft die aktuelle Sitzung ab, wenn der Benutzer den Browser schließt Die Sitzung wird nicht mehr existieren.

So lösen Sie das Problem, dass die Timeout-Einstellung für die Springboot2-Sitzung ungültig ist So lösen Sie das Problem, dass die Timeout-Einstellung für die Springboot2-Sitzung ungültig ist May 22, 2023 pm 01:49 PM

Problem: Heute ist in unserem Projekt ein Zeitüberschreitungsproblem aufgetreten, und Änderungen an den application.properties von SpringBoot2 wurden nie wirksam. Lösung: Die server.*-Eigenschaften werden verwendet, um den eingebetteten Container zu steuern, der von SpringBoot verwendet wird. SpringBoot erstellt eine Instanz des Servlet-Containers mithilfe einer der ServletWebServerFactory-Instanzen. Diese Klassen verwenden server.*-Eigenschaften, um den kontrollierten Servlet-Container (Tomcat, Jetty usw.) zu konfigurieren. Wenn die Anwendung als WAR-Datei auf einer Tomcat-Instanz bereitgestellt wird, gelten die server.*-Eigenschaften nicht. Sie gelten nicht,

So implementieren Sie die SMS-Anmeldung in der Redis-Anwendung für gemeinsam genutzte Sitzungen So implementieren Sie die SMS-Anmeldung in der Redis-Anwendung für gemeinsam genutzte Sitzungen Jun 03, 2023 pm 03:11 PM

1. Implementieren der SMS-Anmeldung basierend auf der Sitzung 1.1 Ablaufdiagramm der SMS-Anmeldung 1.2 Implementieren des Sendens eines SMS-Bestätigungscodes Beschreibung der Front-End-Anfrage: Beschreibung der Anfragemethode POST-Anfragepfad/Benutzer/Code-Anfrageparameter Telefon (Telefonnummer) Rückgabewert Keine Back-End-Schnittstelle Implementierung: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1 Überprüfen Sie die Mobiltelefonnummer, wenn

Was sind die Unterschiede zwischen JavaScript- und PHP-Cookies? Was sind die Unterschiede zwischen JavaScript- und PHP-Cookies? Sep 02, 2023 pm 12:29 PM

JavaScript-Cookies Die Verwendung von JavaScript-Cookies ist die effektivste Möglichkeit, Präferenzen, Käufe, Provisionen und andere Informationen zu speichern und zu verfolgen. Informationen, die für ein besseres Besuchererlebnis oder Website-Statistiken benötigt werden. PHPCookieCookies sind Textdateien, die auf Client-Computern gespeichert und zu Nachverfolgungszwecken aufbewahrt werden. PHP unterstützt transparent HTTP-Cookies. Wie funktionieren JavaScript-Cookies? Ihr Server sendet einige Daten in Form eines Cookies an den Browser Ihres Besuchers. Browser können Cookies akzeptieren. Falls vorhanden, wird es als reiner Textdatensatz auf der Festplatte des Besuchers gespeichert. Wenn ein Besucher nun eine andere Seite der Website erreicht

See all articles