Seite 1 von 1
include von anderer Site -> sehr langsam
Verfasst: 19.11.2006, 17:11
von chio
Ja, sagt eh schon alles:
Es wird ein mittelgroßer (15k) html-Block von einer anderen Domain B geladen und mit include auf Site A reingehängt. Problem: das dauert oft 10 Sekunden oder länger. Kann auch sein dass bei Domain A php generell nicht schnell läuft, ich habs nicht probiert.
Auf Domain B kommt die Seite wie der Blitz.
Kann es sein, dass der php-Parser den html-Block nochmal parst? (da gibt es nix, ist nur html) Wenn ja, wie kann ich das verhindern?
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 19.11.2006, 18:02
von cren
Kannst ja mal mit readfile() statt mit include probieren. Damit wirds nicht nochmal geparst meines Wissens nach. Ob das allerdings wirklcih so nen großen Unterschied macht... am besten ausprobieren

Verfasst: 19.11.2006, 18:35
von chio
Scheint, dass es eher an chronischer Überlastung des Servers liegt. Heute ist wieder alles flott.
Wie kompliziert wäre eigentlich folgendes:
Die Seite (es ist nur eine bestimmte, die anderen sind statisch) ändert sich nicht dauernd, sondern "nur" täglich oder gelegentlich zwischendurch. Könnte man ein kleines php-Skript nehmen, das die Seite abholt und statisch als html schreibt? Ausgelöst etwa durch den Aufruf der html-Seite, über Javascript oder so? Dann würde zwar jeder die gerade alte Version sehen, aber das wäre verschmerzbar.
Verfasst: 21.11.2006, 03:20
von everflux
Ich würde auch in jedem Fall zu caching (so heißt das

) raten, selbst dann wenn die einzubindende Seite nur 5 Minuten aktuell ist, so sparst Du Dir für die fünf Minuten das ständige neu-laden von einer anderen Maschine.
Weiterhin vermeidest Du damit Probleme wenn mal an der Quelle was hakt - zumindest für die Zeit die du den Cache nutzt bist Du ja völlig unabhängig von der Quelle.
Verfasst: 21.11.2006, 09:50
von marc75
Kann es sein, dass der php-Parser den html-Block nochmal parst?
Nein, da Server A den Code von Server B nicht zu sehen bekommt, sondern nur das fertige Resultat.
Ansonsten ist ein Cachen immer die beste Lösung.
Verfasst: 21.11.2006, 10:12
von chio
n'Morgen
Danke für die Antworten. Wie soll das jetzt konkret geschehen.
Leider bin ich nicht recht firm in diesen Sachen - für ein include reicht es gerade.
Wie mache ich den "Trigger"? Auf Webspace A ist gerade mal php erlaubt, CronJobs sicher nicht. Kann a.html - nach dem laden - irgendwie a.php aufrufen?
Und wie kann sich a.php-Seite selbst als a.html speichern?
Verfasst: 21.11.2006, 12:03
von everflux
Einfach nach Zeit machen, wenn Du grob abschätzen kannst, wann die Daten aktualisiert werden müssen.
Pseudocode wäre dann sowas wie
wenn_cache-datei_vorhanden UND datei_datum_jünger_als_cachezeitraum
Cache-Datei verwenden
SONST
daten neu vom server holen und in cache datei speichern
Verfasst: 21.11.2006, 12:35
von net(t)worker
überprüf doch den zeitpunkt des letzten speicherns anhand der datums der datei...
Code: Alles auswählen
if ((filetime ( "cachdatei") +3600) < time())
{
... hole datei neu, gib daten aus und speicher ab
}
else
{
..cache auslesen und ausgeben
}
wenn der cache älter als 1 Stunde ist wird er neu geladen und gespeichert..