JQuery-UI-Registerkarten-Caching

8

Ich arbeite in einer ASP.NET MVC-Anwendung. Ich habe eine JQuery UI-Registerkarte, deren JavaScript zum Aktivieren des Caching wie folgt ist.

%Vor%

Ich habe drei Registerkartenelemente erstellt, die eine Liste verwenden, z. B. tab1, tab2, tab3.

Nun passiert es, wenn die Registerkarte konfiguriert ist, dass sie die Cache-Funktion für alle Registerkartenelemente aktiviert. Aber wie kann ich die Zwischenspeicherung für diese Registerkartenelemente individuell einstellen? Say (tab1 cache, tab2 no cache, tab3 cache) Ich kann nur eine Möglichkeit sehen, Caching auf die gesamte Registerkarte anzuwenden, anstatt das Caching auf einzelne Tab-Elemente nach Bedarf anzuwenden.

Außerdem muss ich die Zwischenspeicherung für diese Registerkartenelemente (Tab1, Tab2, Tab3) dynamisch aktivieren oder deaktivieren. Wie kann ich das erreichen? jede Hilfe würde geschätzt werden?

    
SARAVAN 12.04.2010, 18:04
quelle

4 Antworten

9

Ich hatte kürzlich auch einen Nutzen dafür. Wenn Sie in den Code schauen, werden "cache.tabs" mit $ .data verwendet, um zu bestimmen, ob ein Tab zwischengespeichert werden soll. Sie müssen also nur das Element greifen und $.data(a, "cache.tabs", false);

setzen

Ich habe eine schnelle Erweiterung erstellt, um genau das zu tun, vorausgesetzt, die Registerkarten sind statisch. Es kann unvorhergesehene Probleme geben, und kann sicherlich verbessert werden.

%Vor%

Wie Sie sehen können, weise ich die alte load -Methode _load25624 zu, nur einen zufälligen Namen, behalte sie als Mitglied des Objekts und rufe sie in der neuen load -Methode auf, nachdem ich festgestellt habe, ob die Registerkarte vorhanden ist sollte zwischengespeichert werden. Verwendung:

%Vor%

Schaltet den Cache für den gesamten Satz von Elementen ein und deaktiviert den Cache nur für das erste Element (Index 0).

    
Eric Muyser 02.09.2010 04:24
quelle
5

Um Erics Analyse zu vereinfachen, können Sie das Zwischenspeichern jeder Registerkarte steuern, indem Sie die Daten "cache.tabs" im Ankerelement jeder Registerkarte festlegen.

%Vor%

Nachdem der Inhalt der Registerkarte zum ersten Mal geladen wurde, können Sie das Zwischenspeichern für diese Registerkarte aktivieren. Ich würde es einfach in $(document).ready setzen:

%Vor%

Danke, Eric!

    
William Niu 23.03.2011 00:37
quelle
2

Versuchen Sie es

%Vor%     
Ashutosh Tripathi 21.02.2013 09:42
quelle
0

Keine der oben genannten funktionierte für mich in IE. Ich musste

setzen %Vor%

Auf der Seitenebene und nicht auf der Ajax-Methode (die für Chrome funktionierte)

Also:

%Vor%

Sowie:

%Vor%     
Matt 13.09.2017 11:23
quelle