Ich versuche, eine Funktion zu erstellen, bei der ich eine UI-Eingabeaufforderung zeige, wenn der Benutzer die Seite manuell neu lädt (über F5, Strg+R oder die Browser-Aktualisierungsschaltfläche), aber ich möchtediese Eingabeaufforderung überspringen, wenn das Neuladen durch location.reload() in meinem eigenen JavaScript-Code ausgelöst wurde. Einschränkungen
Ich kann Folgendes nicht verwenden:
sessionStorage
[*]localStorage
[*]Cookies
[*]URL query parameters
[*]Global JavaScript flags
[/list]
The reason is that the project is a [b]large Ruby on Rails application[/b], and injecting state (e.g., sessionStorage.setItem(...)
) vor jedem programmatischen Neuladen ist nicht durchführbar oder wartbar.
Was ich versucht habe Was ich versucht habe
Ich verwende derzeit die Navigation Timing API, um Neuladungen zu erkennen:
const navEntry = performance.getEntriesByType('navigation')[0];
const navType = navEntry?.type;
if (navType === 'reload') {
// Show prompt
}
Dies erkennt korrekt, dass ein Neuladen stattgefunden hat, sagt mir aber nicht, wie es ausgelöst wurde. Was ich brauche
Ich möchte erkennen: Manuelle Neuladungen → Eingabeaufforderung anzeigen Programmatische Neuladungen über location.reload() → Eingabeaufforderung nicht anzeigen Meine Frage
Gibt es in JavaScript eine Möglichkeit:
Erkennen, wie ein Seitenneuladen ausgelöst wurde (manuell oder programmgesteuert)?
Tun Sie dies, ohne sich auf externe Zustände wie SessionStorage, Cookies oder Abfrageparameter zu verlassen?
Gibt es Browser-APIs, Ereignisse oder zuverlässige Muster/Hacks, die Entwickler hierfür verwenden?
Mir ist bewusst, dass dies möglicherweise nicht nativ unterstützt wird, daher bin ich offen für clevere Problemumgehungen
Vielen Dank im Voraus! Jeder Einblick von JavaScript- oder Frontend-Entwicklern, die mit einem ähnlichen Browserverhalten umgegangen sind, wäre dankbar.
Ich versuche, eine Funktion zu erstellen, bei der ich eine UI-Eingabeaufforderung zeige, wenn der Benutzer [b]die Seite manuell neu lädt[/b] (über F5, Strg+R oder die Browser-Aktualisierungsschaltfläche), aber [url=viewtopic.php?t=30561]ich möchte[/url] [b]diese Eingabeaufforderung überspringen, wenn das Neuladen durch location.reload()[/b] in meinem eigenen JavaScript-Code ausgelöst wurde. 🚫 Einschränkungen Ich kann Folgendes nicht verwenden: [list] [*][code]sessionStorage [*]localStorage [*]Cookies [*]URL query parameters [*]Global JavaScript flags [/list] The reason is that the project is a [b]large Ruby on Rails application[/b], and injecting state (e.g., sessionStorage.setItem(...)[/code]) vor jedem programmatischen Neuladen ist nicht durchführbar oder wartbar. Was ich versucht habe ✅ Was ich versucht habe Ich verwende derzeit die Navigation Timing API, um Neuladungen zu erkennen: [code]const navEntry = performance.getEntriesByType('navigation')[0]; const navType = navEntry?.type;
if (navType === 'reload') { // Show prompt }
[/code] Dies erkennt korrekt, dass ein Neuladen stattgefunden hat, sagt mir aber nicht, wie es ausgelöst wurde. ❓ Was ich brauche Ich möchte erkennen: ✅ Manuelle Neuladungen → Eingabeaufforderung anzeigen ❌ Programmatische Neuladungen über location.reload() → Eingabeaufforderung nicht anzeigen 🧠 Meine Frage Gibt es in JavaScript eine Möglichkeit: Erkennen, wie ein Seitenneuladen ausgelöst wurde (manuell oder programmgesteuert)? Tun Sie dies, ohne sich auf externe Zustände wie SessionStorage, Cookies oder Abfrageparameter zu verlassen? Gibt es Browser-APIs, Ereignisse oder zuverlässige Muster/Hacks, die Entwickler hierfür verwenden? Mir ist bewusst, dass dies möglicherweise nicht nativ unterstützt wird, daher bin ich offen für clevere Problemumgehungen Vielen Dank im Voraus! Jeder Einblick von JavaScript- oder Frontend-Entwicklern, die mit einem ähnlichen Browserverhalten umgegangen sind, wäre dankbar.
Ich versuche, eine Funktion zu erstellen, bei der ich eine UI-Eingabeaufforderung zeige, wenn der Benutzer die Seite manuell neu lädt (über F5, Strg+R oder die Browser-Aktualisierungsschaltfläche),...
Ich habe ein mehrseitiges Quiz erstellt, und ich verwende die SessionStorage-API, um die Punkte zu berechnen und die Endbewertung auf der letzten Seite anzuzeigen. Jedes Mal habe ich eine erste Seite...
Zum Beispiel habe ich Version 21 installiert und soweit ich weiß, kann ich die Nashorn-Engine nicht mehr verwenden.
Aber vielleicht ist GraalVM für mich verfügbar?
Ich habe alle notwendigen...
Zum Beispiel habe ich Version 21 installiert und soweit ich weiß, kann ich die Nashorn-Engine nicht mehr verwenden.
Aber vielleicht ist GraalVM für mich verfügbar?
Ich habe alle notwendigen...
Nach meinem Verständnis sollte
möglich sein,
nur Keyframes für Diashow,
und zwischen ihnen einstellen, für optimale Größe der Datei. Zu machen (vorzugsweise Python oder Rost, irgendwann Golang, Zig,...