Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

[gelöst][ASP.NET /Javascript] Javascript serverseitig dynamisch erstellt, wird im browser gecached
Birne
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Hamburg

Themenstarter:

[gelöst][ASP.NET /Javascript] Javascript serverseitig dynamisch erstellt, wird im browser gecached

beantworten | zitieren | melden

Hallo Community,

ich habe ein Problem bzgl. Javascript Caching im Browser.

Das Szenario sieht wie folgt aus:

- Ich füge im ServerCode meiner Seite via Page.ClientScript.RegisterClientScriptBlock ein dynamisch erzeugtes Javascript hinzu.

- Leider wird das Javascript im Browser gecached und bisher habe ich keine Möglichkeit gefunden dass Javascript nicht cachen zu lassen oder es aus dem Browsercache zu löschen.

_
Welche Möglichkeiten gibt es, das Caching für dieses eine Script zu verhindern oder aber das Script aus dem Browsercache zu löschen ?

Ich hoffe ihr wisst Rat.
Vielen Dank !

Birne
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Birne am .
private Nachricht | Beiträge des Benutzers
der-schlingel
myCSharp.de - Member

Avatar #avatar-3239.jpg


Dabei seit:
Beiträge: 799
Herkunft: Österreich/Wien

beantworten | zitieren | melden

Hast du schon probiert generell das Caching abzudrehen? (Siehe z.B. hier)

Die andere Frage: Was tut dein Skript dass du es Server seitig generierst und nicht z.B. auf Page-Methods oder ähnliches setzt?
As a man thinketh in his heart, so he is.
- Jun Fan
Es gibt nichts Gutes, außer man tut es.
- Erich Kästner
Krawutzi-Kaputzi
- Kasperl
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.393

beantworten | zitieren | melden

Als allererstes: JavaScript sollte gecached werden. Das ist ein ganz normales und gewolltes Verhalten in Browsern.
Auch wenn Du serverseitiges Cachen versuchst zu deaktivieren, kann / wird das der Client unter bestimmten Vorraussetzungen ignorieren.

Es gibt zwar "Hacks" zB via "dynamische js-Url" (die Parameter ändern sich bei jedem Aufruf, zB Uhrzeit als long)
 <script src="myscript.js?874324876324" type="text/javascript"></script>
es ist aber kein sichergestelltes Verhalten. Es gibt hierfür auch kein prinzipielles How-to.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Abt am .
private Nachricht | Beiträge des Benutzers
Birne
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Hamburg

Themenstarter:

beantworten | zitieren | melden

Zitat von der-schlingel
Hast du schon probiert generell das Caching abzudrehen? (Siehe z.B. hier)

Habe ich probiert, funktioniert im IE leider nicht :I
Zitat
Die andere Frage: Was tut dein Skript dass du es Server seitig generierst und nicht z.B. auf Page-Methods oder ähnliches setzt?

Das javascript gleicht ein defizit des Ajax Toolkit Controls "CalendarExtender" aus. Dieser lässt sich nicht mit einem Datum vorbelegen ohne dass die zugehörige Textbox den Inhalt auch ändert.

Ich hänge mich also in das "OnClienShowing" Event des Calendars und ändere das angezeigte Datum.

Das Datum ist Resultat Serverseitiger Berechnungen, weshalb ich das Script auch nicht in eine Datei auslagern kann.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Birne am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.393

beantworten | zitieren | melden

AJAX Toolkit ist ein gestorbenes Produkt von Microsoft, das ansich mich Ajax nich viel am Hut hat.
Laut Beispielen kann man dem Calendar mit SelectedDate aber ein Datum vorgeben.
private Nachricht | Beiträge des Benutzers
Birne
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Hamburg

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
AJAX Toolkit ist ein gestorbenes Produkt von Microsoft, das ansich mich Ajax nich viel am Hut hat.
Laut Beispielen kann man dem Calendar mit SelectedDate aber ein Datum vorgeben.

Dann ändert dies aber auch die Textbox and welche der Calendar attached ist.

Ich kann das Toolkit auch nicht neu compilen, weil mir der source code zu meienr hier eingesetzten version fehlt.

Die neue Version läuft auch mit sharepoint nicht mehr.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.393

beantworten | zitieren | melden

Microsoft hat AJAX aus dem aktiven Portfolio genommen, da einfach jQuery deutlich flexibler ist. MVC (aktuell in Version 3) supportet jQuery auch aktiv, sowie Sharepoint.
Wenn Du an einer Neuentwicklung arbeitest ist der Umstieg auf MVC sicherlich eine lohnende Investition. AJAX und "Classic ASP" sind halt einfach in gewisser Hinsicht tot. Das neue Sharepoint basiert auch auf MVC.
private Nachricht | Beiträge des Benutzers
Birne
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Hamburg

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Microsoft hat AJAX aus dem aktiven Portfolio genommen, da einfach jQuery deutlich flexibler ist. MVC (aktuell in Version 3) supportet jQuery auch aktiv, sowie Sharepoint.
Wenn Du an einer Neuentwicklung arbeitest ist der Umstieg auf MVC sicherlich eine lohnende Investition. AJAX und "Classic ASP" sind halt einfach in gewisser Hinsicht tot. Das neue Sharepoint basiert auch auf MVC.

Das Projekt lässt sich im aktuellen Status jetzt nicht mehr umschwenken auf MVC.
Ich habe jetzt ne quick&dirty solution gewählt und pushe das Datum als Value von der CodeBehind zurück.

Somit muss das jscript nicht mehr dynamisch erzeugt werden und es kann gecached werden.
private Nachricht | Beiträge des Benutzers