(gelöst) iOS7-CSS: Stylesheet wird nicht immer geladen

Begonnen von FunkOdyssey, 01 März 2015, 14:09:45

Vorheriges Thema - Nächstes Thema

FunkOdyssey

Ähm. Ich habe natürlich kein iOS7 mehr im Einsatz, sondern auch iOS 8.3.
Das Style heißt halt nur "iOS7".

tomster

Zitat von: setstate am 12 April 2015, 12:28:12
Ich habe ein ähnliches Phänomen. Das FHEM Tabel UI zeigt auf meinem iPhone (iOS 8.3) bei jedem Refresh ein anderes Aussehen. Vermutlich wird das CSS File nicht vollständig geladen, jedesmal fehlt etwas anderes. Die selbe Seite auf dem iPad, Android, MacBook zeigt keinerlei Probleme. Ich vermute ein TimeOut Problem beim HTTPSRV. Ich bin noch am Forschen ...
Die gleiche Seite auf einem anderen Webserver auf dem gleichen NAS, wo FHEM läuft, gehostet, zeigt auf dem iPhone auch kein Fehler. Es muss daran liegen, wie FHEM HTTPSRV die Seite überträgt.
Leider kann ich kein Safari 6 oder höher installieren, damit man mit den Entwickler-Tools die Fehler vom iOS Safari debuggen kann.
Kann das mal jemand probieren?

Ich hab Mal versucht, ob man daran vielleicht etwas ändern kann, wenn man den "App-Cache" bemüht um Teile des UIs aus dem Cache und nicht von FHEM selbst lädt.
Siehe da, es scheint zu funktionieren! Zumindest hatte ich bei ca. 15-20 Refreshs keinen einzigen CSS-Glitch...
Ich hab den werten Herrn "App-Cache" aber gerade erst kennengelernt, also seht mir bitte nach, wenn man es eventuell auch einfacher hinbekommen könnte.

Ich bitte Euch folgende Code-Schnipsel (sind nicht viele) bei euch einzubauen und ebenfalls fleissig zu Testen. Bei meinem Leih-iPad konnte es o.g. Phänomen beseitigen und auch der Firefox am PC scheint kein Problem damit zu haben. Mich würde aber auch interessieren, ob vielleicht andere Systeme (Android, Opera, etc.) einen Fehler auswerfen.

Hier nun kurz was ich gemacht habe:

Zunächst muss eine Datei (ich nenne sie "ui.appcache" im Homeverzeichnis vom UI (/opt/fhem/www/tablet/ui.appcache) angelegt werden. Auf Dateirechte achten!
In diese kommt dann folgender Inhalt:

CACHE MANIFEST

CACHE:
css/fhem-tablet-ui.css
fonts/*
js/*
NETWORK:
*
http://*
https://*
FALLBACK:
css/fhem-tbalet-ui.css
fonts/*


Dann in der index.html diesen Teil (ganz oben):

<!DOCTYPE html>
<html>
<head>


durch den nachfolgenden ersetzen:

<!DOCTYPE html>
<html manifest="ui.appcache">
<head>


Mehr ist es nicht. Feedback (auch von Leuten, die sich wirklich mit dem App-Cache auskennen, ausdrücklich erwünscht!

rudolfkoenig

Mit der MANIFEST sagt man dem Browser, welche Dateien er explizit laden soll (auch wenn sie noch nicht verwendet wurden), und welche nicht cachen darf. Man kann damit Offline-Web-Anwendungen bauen, wo der Server nicht mehr erreichbar sein muss.

Die Dateien aus dem App-Cache werden beim Server nicht nachgefragt (Shift-Ctrl-R hilft nicht), d.h. ein Neuladen dieser Dateien ist muehsam (cache loeschen), oder erfordert Programmhilfe.

Laedt das FHEM Tablet UI seine Daten ueber FHEMWEB? Ich vermute immer noch, das im Zusammenhang mit iOS FHEMWEB sich noch nicht perfekt verhaelt, weiss aber nicht genau, wieso/wo.

nesges

Zitat von: rudolfkoenig am 08 Mai 2015, 16:43:58
Laedt das FHEM Tablet UI seine Daten ueber FHEMWEB?

Die CSS werden standardmässig per HTTPSRV aus www/tablet geholt:
define tablet_ui HTTPSRV tablet/ ./www/tablet Tablet Frontend
(jquery.min.js und cordova-2.3.0.js werden idR per script-Tag direkt aus pgm geladen.)

Readings werden per list über FHEMWEB geholt.

felix.steinbeis

Hallo zusammen,

gibt es inzwischen eine Lösung?

Ich habe auch das Problem, dass auf dem iPad unter Safari manchmal die CSS nicht vollständig geladen werden.

Das Betrifft sowohl das FHEMWEB default CSS als auch Tablet UI CSS.

Viele Grüße
Felix

FunkOdyssey

Danke. Das gibt ein gutes Gefühl nicht alleine zu sein. :-)
Auch nach einer Neuinstallation des RasPi und von Fhem bleibt das Problem weiterhin vorhanden.

FunkOdyssey