2017-09-10 2 views
0

Wenn ein Benutzer beispielsweise meine Webanwendung über die automatisch geladene Standardseite index.html eingibt, kann dieser Socket weiterhin verwendet werden, wenn der Benutzer auf eine Schaltfläche auf meiner Webseite klickt, die eine andere HTML-Seite lädt, die Teil meiner Webanwendung ist? Im Moment habe ich eine Frontend-Seite, die für meine 3 HTML-Dateien verwendet wird. Es funktioniert gut für meine Standard-Indexdatei, aber wenn ich auf eine Schaltfläche klicke, die zu einer anderen HTML-Datei führt (die auch mit meiner Frontend-js-Seite verbunden ist), heißt das, dass io nicht in der Konsole definiert ist.Kann ich einen Socket über mehrere HTML-Seiten verwenden?

+0

Denken Sie an jede einzelne Seite, die ein Browser als eigenständige Anwendung lädt. Wäre dies nicht der Fall, gäbe es * große * Sicherheitsprobleme, verglichen mit denen, die wir bereits haben. – Norguard

Antwort

1

Das Laden einer neuen HTML-Seite führt dazu, dass das Javascript auf der neuen Seite ausgeführt wird - dies zerstört jeden Kontext von der vorherigen Seite (einschließlich bestehender Verbindungen).

Es gibt ein paar Möglichkeiten, um dieses:

  1. Code schreiben die Verbindung beim Laden der Seite wieder herzustellen. Dazu muss ein Bezeichner einer bestimmten Art übergeben werden, damit die neue Verbindung der vorhandenen Sitzung zugeordnet wird.

  2. Schreiben Sie Ihre Anwendung als eine einzelne Seite App (SPA). In einem SPA werden die Seiten auf der Clientseite im Rahmen einer JavaScript-App gerendert, die beim ersten Laden an den Client übergeben wird. Da kein Neuladen stattfindet, wenn ein Benutzer von einer Seite zu einer anderen wechselt, ist die Verbindung nicht verloren.

Verwandte Themen