[TYPO3-german] Merkwürdiges Verhalten bei DB-Abfragen

Tobias Wolf tobias.wolf at evision.de
Fri Dec 11 21:55:49 CET 2009


Hallo Christian,

vielen Dank für den Tip.

Christian Wolff schrieb:
> Hi Tobias,
> ich würde erstmal zum testen ob deine seite wirklich aktuell ist
> eine ausgabe des generierungs zeitpunkts machen.
>
> dann kannst du sehen ob die ausgabe tatsächlich aus dem cache kommt oder
> aktuell generiert wurde.
>
>   
Ich weiss nicht ob meine Methode für die Ausgabe ok ist.

In den PHP Code der Ausgabeseite lasse ich mir per time() einen 
Timestamp geben und diese gebe im HTML mit aus.

Hier die Ausgaben:

1. Aufruf der Ausgabeseite:  20 Datensätze Erzeugt um: 1260563989
Jetzt Dateneingabe
Per Link (ohne &no_cache=1) zur Ausgabeseite:  20 Datensätze Erzeugt um: 
1260564048
Nun per F5 aktualisiert:  21 Datensätze Erzeugt um: 1260564063

Wie wir sehen, ändert sich der Timestamp kontinuierlich, während 
wiederum der neue Datensatz erst nach einen Refresh verfügbar ist.

Nun kommt das merkwürdige. Wenn ich an den Link zur Ausgabeseite das 
vorgeschlagene &no_cache=1 anhänge, so wird die Seite sofort mit allen
Datensätzen angezeigt.

Wird der Parameter weggelassen so erhalte zuverlässig wieder da alte 
Verhalten.

Da blick ich nicht mehr durch.

Obwohl ich alle mir bekannten Möglichkeiten den Cache auszuschalten 
benutzt habe, scheint die Seite doch irgendwie aus dem Cache zu kommen.

Ergänzenderweise habe ich auch für die Seite im Typo3 BE den Cache 
ausgestellt.

Vielen Dank Christian, jetzt habe ich zumindest eine Richtung ...

Gruß,

Tobias
> wenns nicht der typo3 cache ist könnten es der browsercache sein oder
> vieleicht ein proxy. der dazwischen funkt. am ende des seiten links
> sorgt eigendlich immer dafür das der aufruf nicht aus dem typo3 cache
> kommt. zum testen praktisch. &no_cache=1
>
> gruss chris
>
>
> Tobias Wolf schrieb:
>   
>> Hallo zusammen,
>>
>> aktuell habe folgendes Problem:
>>
>> Ich habe eine Extension geschrieben welche in mehrere Submodule
>> aufgeteilt ist.
>>
>> Jetzt ist auf einer Seite die Extension in der Konfiguration zur
>> Dateneingabe eingebunden und auf einer zweiten Seite sollen die Daten,
>> welche in die DB geschrieben worden sind als Liste ausgegeben werden.
>>
>> Es wird also ein Formular angezeigt in welchem Daten eingeben werden
>> können. Nachdem die Daten von der Extension verarbeitet und in die DB
>> geschrieben worden sind wird eine kurze Bestätigungsseite angezeigt mit
>> einem Link zu der Ausgabe-Seite.
>>
>> So weit so gut.
>>
>> Wenn ich allerdings sofort auf den Link zur Ausgabe-Seite klicke, werden
>> mit zwar die Daten aus der DB wie gewünscht angezeigt, allerdings ohne
>> den aktuellen Datensatz. Dieser erscheint nach mehrmaligen Seite
>> neuladen (am besten per SHIFT-F5).
>>
>> Da denkt doch sofort daran, ist ja klar, die Seite wurde mit Sicherheit
>> aus dem Cache geholt.
>>
>> Nur habe ich den Cache zu Entwicklung per Typoscript ausgeschaltet:
>>
>> config {
>> no_cache = 1
>> }
>>
>> Zur Sicherheit habe ich in der Extension den Cache per ext_localconf.php
>> ausgeschaltet:
>> t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.user_extclass_pi1.php',
>> '_pi1', 'list_type', 0);
>>
>> Über die Extension developerlog lasse ich mir Logausgaben zeigen, vor
>> die Anzahl der gefundenen Reihen der SQL-Abfrage und auch hier wird
>> zunächst die neue Zeile nicht mitgezählt.
>>
>> Nativ per SQL sehe ich den neuen Datensatz natürlich sofort.
>>
>> Die Daten werden per
>>
>> $GLOBALS['TYPO3_DB']->exec_INSERTquery()
>>
>> in die DB eingefügt.
>>
>> Die Abfrage erfolgt mit
>>
>> $res = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray()
>>
>> Wisst ihr eventuell noch weitere Gründe, warum auf der Anzeigeseite der
>> frisch eingefügt Datensatz nicht erscheint? Werden irgendwie SQL Queries
>> gecachet?
>>
>> Es ist wohl der eAccelerator 0.9.5.3 installiert, ich habe aber nichts
>> gefunden was darauf hindeutet das hier SQL Queries gecached werden, bzw.
>> man muss spezielle Methoden benutzen damit SQL Queries gecached werden.
>> Aber selbst wenn, da sich das Resultset definitv geändert hat, sollte 
>> dieses auch zurückgegeben werden.
>>
>> Leider haben mich Google und Co in dieser Sache noch nicht schlauer
>> gemacht.
>>
>> Vielleicht hat einer von euch noch ne Idee. Ich habe versucht alle
>> relevanten Information zu geben, ohne einfach stupide den komplette
>> PHP-Code und Typo3-Config reinzukopieren. Bitte sagt Bescheid, wenn euch
>> bestimmte Informationen fehlen, ich werde versuchen diese so gut wie
>> möglich zu ergänzen.
>>
>> Schonmal vielen Dank im Vorraus ...
>>
>> Gruß,
>>
>> Tobias Wolf
>>     
>
>
>
>
>   



More information about the TYPO3-german mailing list