Script Parameter

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
stevie1401
Beiträge: 705
Registriert: 19.10.2014 15:51
Kontaktdaten:

Script Parameter

Beitrag von stevie1401 »

In meiner HTML Datei ist folgende Zeile:

Code: Alles auswählen

<script type="text/javascript" src="index.js?t=1760939924"></script>
Was bedeutet das t=1760939924?

Ich habe gelesen, um den Cache des Browsers auszuschalten kann ich ein v=1 einfügen.
Also

Code: Alles auswählen

<script type="text/javascript" src="index.js?v=1></script>
Kann ich das v=1 auch auch hinter das t=1760939924 schreiben?

Code: Alles auswählen

<script type="text/javascript" src="index.js?t=1760939924"v=1></script>
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Sicro
Beiträge: 968
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Script Parameter

Beitrag von Sicro »

stevie1401 hat geschrieben: 20.10.2025 08:03

Code: Alles auswählen

<script type="text/javascript" src="index.js?t=1760939924"></script>
Was bedeutet das t=1760939924?
"t" steht hier für "time". Die Zahl steht für die vergangenen Sekunden seit 01.01.1970.

Code: Alles auswählen

Debug FormatDate("%dd.%mm.%yyyy - %hh:%ii:%ss", 1760939924)
; ergibt: 20.10.2025 - 05:58:44
Wenn jemand deine Internetseite besucht, dann speichert der Browser die "index.js"-Datei in den Browser-Cache, damit dieser die Datei beim nächsten Besuch nicht nochmal herunterladen muss. Änderst du nun etwas an der "index.js"-Datei auf deinem Webserver, wird die neue Version von dem Browser des Besuchers nicht heruntergeladen, weil in seinem Browser-Cache bereits die alte "index.js"-Datei gespeichert ist. Das "t=1760939924" bei "index.js?t=1760939924" führt dazu, dass der Browser beim Speichern in den Browser-Cache das "t=1760939924" ebenfalls berücksichtigt. Änderst du es zu "index.js?t=1760939930", ladet der Browser die Datei "index.js" erneut herunter, weil der Browser nur "index.js" mit "t=1760939924" im Browser-Cache hat.
stevie1401 hat geschrieben: 20.10.2025 08:03 Ich habe gelesen, um den Cache des Browsers auszuschalten kann ich ein v=1 einfügen.
"v=1" ist das Gleiche wie oben mit dem Parameter "t", nur das du hier eine Versionnummer anstatt eine Sekundenzahl angibst. Hier steht "v" wahrscheinlich für "version". Als erstes hast du die Version 1 der "index.js", also "index.js?v=1". Wenn du an der Datei etwas änderst, erhöhst du die Versionnummer: "index.js?v=2".
stevie1401 hat geschrieben: 20.10.2025 08:03 Kann ich das v=1 auch auch hinter das t=1760939924 schreiben?

Code: Alles auswählen

<script type="text/javascript" src="index.js?t=1760939924"v=1></script>
Ja, aber weitere Parameter werden mit "&" getrennt, also so:

Code: Alles auswählen

<script type="text/javascript" src="index.js?t=1760939924&v=1"></script>
Das macht aber wenig Sinn, weil du bereits mit einem Parameter den Browser des Besuchers zwingen kannst, die "index.js" erneut herunterzuladen.

Der Parameter muss auch nicht "v" oder "t" heißen, sondern kann eine beliebige Zeichenfolge sein. An den Parametern muss sich einfach nur etwas ändern, damit der Browser feststellt, dass im Browser-Cache die "index.js" mit den Parametern und deren Werten nicht bereits heruntergeladen wurde.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
stevie1401
Beiträge: 705
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Script Parameter

Beitrag von stevie1401 »

Das hast du wirklich ganz toll erklärt, vielen lieben Dank!

Nur scheint es ja nicht zu funktionieren, denn die Browser benutzen weiterhin den Cache und laden nur selten eine neue Seite.
Zuletzt geändert von stevie1401 am 21.10.2025 18:23, insgesamt 1-mal geändert.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Kiffi
Beiträge: 10715
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Script Parameter

Beitrag von Kiffi »

Sofern es sich bei der index.js um eine von SpiderBasic generierte Datei handelt: SB ergänzt den t-Parameter automatisch bei jedem Compiler-Lauf mit einem anderen Wert. Insofern sollte es keine Probleme mit dem Cache geben. Den v-Parameter benötigst Du dann nicht.
a²+b²=mc²
stevie1401
Beiträge: 705
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Script Parameter

Beitrag von stevie1401 »

Ja es ist eine von Spiderbasic generierte Datei - und dennoch kannst du das vergessen. Es funktioniert nicht.
Ich habe wirklich viele User, die meine Seite benutzen und alle klagen über das selbe Problem.
Wenn ich etwas erneuere laden sie die neue Datei nicht automatisch.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
dige
Beiträge: 1245
Registriert: 08.09.2004 08:53

Re: Script Parameter

Beitrag von dige »

@Stevie1401: ja, dass ist leider ein häufiges Problem im Web. Manchmal werden bestimmte Dateien so hartnäckig vom Browser gecacht, dass es nur noch hilft, die Webseiten Daten zu löschen oder die Seite im "Privaten Modus" zu öffnen.

Was in deinem Fall noch helfen könnte, wenn du deiner Javascript Datei nach Änderungen beim Compilieren einen neuen Namen gibst. Vielleicht mit einer Versionsnummer oder ähnliches. Das sollte stärker greifen, als ein geänderter Parameter..
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
#NULL
Beiträge: 2239
Registriert: 20.04.2006 09:50

Re: Script Parameter

Beitrag von #NULL »

Selbst wenn du die Datei mit neuem Namen/Parametern einbindest, nützt das nichts, wenn der User noch die alte HTML-Datei hat, wo die js-Datei noch wie zuvor eingebunden wird. Jenachdem wie der Server die Dateien aushändigt, kann er dem Browser auch mitteilen, ob/wie gecached werden soll. Z.b. über HTTP-Header 'Cache-Control' oder 'Expires'. Die gibt's glaube ich auch als meta tags auf HTML-Ebene, sind aber wohl noch weniger zuverlässig. Eine Seite kann sich auch über JS selbst neu laden.
Im Übrigen haben Browser auch Shortcuts, um die Seite ohne Verwendung des Cache neu zu laden. Bei mir (Firefox/Linux) ist das glaube ich Ctrl+F5.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
TroaX
Beiträge: 686
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Script Parameter

Beitrag von TroaX »

Du hast da 3 Möglichkeiten, die mir einfallen:
1. Den Server anpassen und so konfigurieren, das nicht gecached und jedes mal neu ausgeliefert wird. Kann aber auch in der HTML über HEAD Variablen erledigt werden. z.B. <meta http-equiv="Cache-control" content="public"> Geht aber auf Traffic und Ladezeit.
2. Den Benutzern sagen, das sie den Cache manuell leeren sollen. Dann bekommen die auch die neue Version. Oder STRG+F5, wie #NULL schrieb. Kommt mehr oder weniger aufs gleiche raus.
3. Du nutzt eine Purebasic Desktop App als Client und steckst deine Spiderbasic-App da rein. Aber damit das zuverlässig funktioniert, hatte ich damals meinen nanoHTTP Embedded Server umgeschrieben und mit integriert. So kannste die neue Version deiner Spiderbasic-App mit dem Client ausliefern.

Aber ohne nachträglichen rumfummeln an der HTML-Datei wird es bei 1 und 3 nicht gehen. Selbst wenn du die Datei jedes mal umbenennst, wird das nötigt sein, weil das HTML nicht weiß, das die Datei anders heißt. Schrieb aber #NULL schon.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Blog: https://techtroax.de
stevie1401
Beiträge: 705
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Script Parameter

Beitrag von stevie1401 »

Mein Server kennt natürlich die neue Clientversion und sagt dann dem User, dass er ggf eine alte Version geladen hat und Strg + F5 drücken soll.
Ich hoffte auf eine elegantere Lösung.
Danke für euche Tips :)
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
TroaX
Beiträge: 686
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Script Parameter

Beitrag von TroaX »

Dann kannst du ja Easy vom Server aus den Cache-Control Header an die Nutzer ausliefern. Und das wäre die eleganteste Lösung 😉
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Blog: https://techtroax.de
Antworten