Aufbereitung HTML String mit CSS

Hallo lb. Forum,
mittels HTML Syntax bereite ich einen HTML String vor.
Aktuell greife ich dazu auch auf eine CSS-Datei zu.
Der Zugriff auf die CSS-Datei klappt einwandfrei.
Nun habe ich aber folgendes Phänomen: wenn ich in der CSS-Datei z.B. die Textgröße bez. die Farbe ändere, dass sich diese Änderung manchmal sofort aktiv ist. Manchmal kann es auch eine lange Zeit (>10 Min) dauern, bis die Änderung aktiv wird. Leider kann ich nicht nachvollziehen, woher die Verzögerung kommt?
Hat jemand auch schon mal dieses Problem gehabt?
Danke für einen Tipp, was ich einstellen muß.
Grüße von
Ekkehard

mein Fazit nach vielen Test’s:
eine Änderung in der CSS-Datei wird vom php Script nicht verarbeitet.
So hart es klingt: der Zugriff auf eine CSS-Datei im php Script ist nicht nutzbar.

Ganz schade!

CSS ist nutzbar, nur ohne das Du ein konkretes Beispiel gibst was Du bisher gemacht hast wird man Dir auch nicht helfen können.
Du musst nur darauf achten entweder das innerhalb von einem iframe zu nutzten dann ist das CSS losgelöst vom CSS des IP-Symcon Webfronts. Wenn Du das ohne iframe machst solltest Du Klassen nutzten um das anzusprechen damit sich dein CSS nicht das CSS vom Webfont überschreibt oder andersrum.

Vielleicht beschreibst Du mal näher was Du genau umsetzten willst.

Hallo Fonzo,
danke für Deine Antwort.
Nachfolgend mein php Script, die URL zur CSS habe ich entfernt:

<?php

//Start writing your code here

$html = "";

$ausgabe = '<head>
	<title>Separate CSS Datei einbinden</title>
	<link rel="stylesheet" type="text/css" href="http://xxxxx.de/css/mystyle.css">
 </head>';

 $html = $html . $ausgabe;

 $ausgabe = '<body>
	<p>So wird ein Stylesheet mit p eingebunden</p>
	<div id="zum_testen">Das ist ein Text in einer Testklasse</div>
	<div id="blauerBereich"><h1>der blaue Bereich</h1></div>
	<div id="ek01">Bereich für ekkehard01 ek01</div>
 </body>';

$html = $html . $ausgabe;

$ausgabe = '<div id="ek02">Standard Text am Ende in kursiv</div>';
$html = $html . $ausgabe;

SetValueString(44996 /*[mein Haus\Auswertungen\HTML Test\html css string]*/, $html);

Was will ich damit machen:
die Stringvariable (44996) möchte ich in ips-view in einer HTML Box anzeigen lassen.
Möchte einen etwas gestyltere Darstellung erzeugen.

Nicht nachvollziehen kann ich, warum es einmal sofort klappt mit einer Anpassung in der CSS-Datei, z.B. Schriftgröße, Farbe, die bei der Ausführung des Script gelesen wird, ein anderes Mal gar nicht.
Danke für Deine Hilfe.
Einen schönen Sonntag wünscht
Ekkehard

Völlig falsche Annahme.
PHP liest das CSS File nie.
Der Client (IPSView / Browser) lädt und interpretiert es.
Michael

Hallo,
dann ist ips-view für das Problem verantwortlich?
Gruß
Ekkehard

Wieso Problem?
IPSView kann nur das HTML neu laden und anzeigen, wenn du den Inhalt der String Variable neu setzt.
Das Ändern des CSS File kann nicht erkannt werden, diese Datei wird nur einmalig vom Client geladen, sobald das HTML geladen wird.
Michael

Hallo Michael,
wenn ich die CSS-Datei ändere, dann rufe ich selbstverständlich „mein“ Script nochmals auf.
Ohne diese Aufruf ist mir klar, dass der Client ja nicht die Änderungen im CSS File mitbekommt.
Aber ich kann mich nicht zu 100 % darauf verlassen, dass nach einer Änderung im CSS File und dem Aufruf des php-Scripts die geänderte CSS Einstellung auch sichtbar (HTML Sting / Box) sind.
Was mache ich noch falsch? Oder habe ich immer noch einen Gedankenfehler?
Grüße von
Ekkehard

Vielleicht Cached der Client das CSS File :slight_smile:
Michael

Du könntest den CSS Teil direkt in deinen HTML String mit einbauen, so mache ich das meistens.
Das ist natürlich nicht optimal, wenn du umfangreiches CSS an vielen Stellen /Variablen nutzt.

Hallo Ralf,
hast Du vielleicht ein kleines Beispiel wie Du das realisiert hast?

Eine andere Variante wäre noch, dass Andreas mal einen Blick auf diese Anfrage werfen könnte.
Dann wissen alle, was möglich ist oder wie man HTML- CSS umsetzen muss.

Danke.
Gruß
Ekkehard

Hallo Ralf,
habe ich WWW ein Bespiel gefunden.
Hab’s bei mir eingebaut, abgepasst und würde soweit laufen.
Warte mal ab, ob Andreas noch eine Antwort gibt.
Grüße
Ekkehard

CSS ist auch typischerweise dafür gedacht, dass es im Gegensatz zu „dynamischem“ HTML für lange Zeit und viele Seiten statisch bleibt. Möchtest du akut in die Text Geschaltung eingreifen, z.B. bei einem Wechsel einer „normalen“ zu einer „alarm“ Meldung, so wechselst du mittels PHP im HTML Code die zugehörige Klasse [Mehrfachverwendung] bzw. ID [bei genau einem Element].

Beispiel:

<p class="normal">Normaler Text</p>
<p class="alarm">Roter Text in extra groß</p>

Pseudo CSS (nicht geprüft ob Syntax tatsächlich stimmt, schreibe nicht mehr täglich css).

p.normal { font-size: 10pt; }
p.alarm { font-size:30pt; color:red; }

So bleibt zwar das „merkwürdige“ Aktualisierungsverhalten der CSS Datei sicherlich während der View Entwicklung problematisch, ist aber im alltäglichen Nutzen nicht mehr weiter störend.

Hallo Andreas,
konntest Du kurz prüfen, wann die CSS Änderungen in den HTML String aufgenommen werden?
Werden Daten etwa im Cache gehalten ?
Grüße von
Ekkehard

Cache gibt es da keinen, das Problem liegt vermutlich an einer Optimierung im Client, diese laden das HTML nur neu wenn sich auch der HTML String verändert hat.

Hallo Andreas,
danke. Damit kann ich mir mein Phänomen erklären, warum manchmal die Änderung in der CSS Datei eine Wirkung hatte und ein anderes Mal wieder nicht.
Frage: in ips-studio 5 ändert sich hier aber nicht’s? Denn ich habe einen Workaround erstellt, in dem ich die css-Datei in ein String einlesen und somit die „Classes“ habe und perfekt nutzen kann.
Grüße von
Ekkehard

Was ich einfach nicht verstehe. Warum willst du im laufenden Betrieb die CSS Datei ändern? Die Idee ist doch gerade, dass der CSS Teil über „Jahre“ gleich bleibt und daher auch bewusst im Client gecached wird.

Für dynamische Änderungen wechselt man dynamisch die Klassenzuordnung im HTML.

Hallo tobiasr,
warum so aggresiv: wenn ich mal HTML/CSS Profi bin, dann werde ich das sicherlich auch so machen, doch in der jetzigen Phase wollte ich die verschiedensten Style Möglichkeiten testen und gleich in der css-Datei ablegen.
War es bisher gewohnt, dass ich nach einer Änderung sofort das Ergebnis sehen kann und das hat mich eben verwundert. Fragen darf doch mal, warum das so ist? Dafür gibt es m.M. nach das Forum.
Sorry!
Grüße von
Ekkehard