Ankündigung

Einklappen
Keine Ankündigung bisher.

CometVisu - (interner) Beta-Test

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • vlamers
    antwortet
    Ob es der Cache ist kann ich nicht zu 100% sagen. Es geht aber wenn dieser deaktiviert ist.

    Das Problem ist dass der switch nur 2 mal bedient werden kann. Im log ist nix zu finden, es scheint dass der webkit Browser nichts mehr sendet. Mein Gedanke war dass der Status 2 mal geändert werden kann also an -> aus oder aus -> an kommt drauf an wie der Status am Anfang war. Dann sind beide stati im Cache und schon geht nix mehr. Wie du ja schon weißt hab ich wenig Ahnung davon. aber aufgrund der Überlegung hab ich den Cache mal deaktiviert.
    auf meinen Recherchen hab ich paar Beiträge gelesen die ähnliche Probleme mit einer Zufalls Nummer gelöst haben. Bei html noch nachvollziehbar (nr an die url anhängen) nur javascript da geb ich auf.

    Gruß

    Edit : zu deinem Edit: das klingt gut ich werde es heute Abend wenn ich zuhause bin gleich mal ausprobieren.

    Einen Kommentar schreiben:


  • makki
    antwortet
    @vlamers: wo genau liegt denn das Problem mit dem cache? (sollte man ja im Webserver-log sehen)
    Falls es nur /cgi-bin/w?.. betrifft könnte man hier natürlich einen arbiträren Zeitstempel anhängen um das zu verhindern, das hielte ich für absolut unproblematisch.
    Edit: also wenns nur das ist sollte es sowas tun:
    Code:
    root@wiregate231:/var/www/visu-svn/lib# svn diff
    Index: cometvisu-client.js
    ===================================================================
    --- cometvisu-client.js	(Revision 379)
    +++ cometvisu-client.js	(Arbeitskopie)
    @@ -151,7 +151,8 @@
        */
       this.write = function( address, value )
       {
    -    var request = 'a=' + address + '&v=' + value;
    +    var ts = new Date().getTime();
    +    var request = 'a=' + address + '&v=' + value + '&ts=' + ts;
         $.ajax( {url:this.urlPrefix + 'w',dataType: 'json',context:this,data:request} );
       }
       
    @@ -185,3 +186,4 @@
     };
     
     CometVisu.prototype.update = function( json ) {}
    Makki

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    Im FF gehts ja auch. Nur ist das Problem dass die billig Pad ein ARM 6 (oder v6) drin haben, und der vom FF nicht unterstützt wird.
    Webkit hab ich leider auch noch keins gesehen dass geht (Froyo 2.2.2, gingerbread 2.3.3 und 2.3.6, honeycomb 3.0) alles original Roms.

    Kann man im javascript nur 1 Funktion (also den switch) vom cachen ausnehmen? Dann wäre der Performance verlust nicht so arg groß?

    Gruß Volker

    Einen Kommentar schreiben:


  • makki
    antwortet
    Das caching-problem könnte man auch "hart" am Webserver oder im Client durch eine dummy-URL "lösen" - nur das ist IMHO keine Lösung sondern eher ein ziemlich schmutziger Workaround, jenseits jeglichen Standards..
    Für 90% wirds damit 5x langsamer..

    Denn eigentlich funktioniert es, es gibt nur wie immer Ausnahmen die die Regel haben
    In aktuellen FF/Webkit konnte ich es aber ehrlichgesagt nicht mehr beobachten (??)

    Makki

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    Ich war beim 1ten versuch zu doof zum tippen.

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Hmm, hilft der Trick mit der Dummy-URL? Allerdings nicht so einfach zu testen, weil ein Skript die Zufallszahl generieren muss und dann die Visu Seite aufruft...

    Ich meine in etwa sowas:
    Code:
    http://wiregate/visu/?config=demo&dummyvalue=XYZ
    wobei XYZ eine Zufallszahl ist...
    Quelle: Pragma: no-cache not supported ? - Android Developers | Google Groups

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    Hallo,

    dane für den Tipp.
    Leider sind die Ideen auf dem link für FF IE und Co. Der Android Browser lässt sich so nicht beeinflussen. (oder ich bekomms nicht hin)


    Wenn ich den Cache diret im Browser deaktiviere geht es. (is beim standard browser leider auch nicht möglich, deswegen der kleine Umweg über das "App").

    Gruß

    Edit:

    Ah Ok jetzt gehts:

    die standard indes.html :
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
     
        <title>CometVisu-Client</title>
        <meta http-equiv="Pragma" content="no-cache">
        <meta name="viewport" content="width=device-width, initial-scale=1"/>
        <script src="lib/compatibility.js" type="text/javascript"></script>
        <script src="lib/jquery.js" type="text/javascript"></script>
        <script src="lib/jquery-ui.js" type="text/javascript"></script>
        <script src="lib/scrollable.js" type="text/javascript"></script>
        <script src="lib/cometvisu-client.js" type="text/javascript"></script>
        <script src="lib/knx_decode.js" type="text/javascript"></script>
        <script src="designs/structure_pure.js" type="text/javascript"></script>
        <script src="designs/structure_custom.js" type="text/javascript"></script>
        <script src="lib/templateengine.js" type="text/javascript"></script>
        <script src="transforms/transform_default.js" type="text/javascript"></script>
        <script src="transforms/transform_knx.js" type="text/javascript"></script>
        <style type="text/css">
            .loading { display: none; }
        </style>
      </head>
      <body>
        <div id="top" class="loading">
          <div class="nav_path">-</div>
        </div>
        <div id="main" style="width:900px;position:relative; overflow: hidden;" class="loading">
          <div id="pages" class="clearfix" style="width:20000em; position:relative;clear:both;"><!-- all pages will be inserted here -->
          </div>
        </div>
        <div id="bottom" class="loading">
          <hr />
            <div class="footer"></div>
          </div>
        </div>
          <div id="loading" style="text-align: center; width: 200px; height: 30px; margin: auto;">
              Loading ...
          </div>
      </body>
    </html>
    ich denke mal das die Lösung für Standard Browser eher Suboptimal ist? Die Ladezeit ist bei mir schon etwas länger (maximal 1 sek).
    Aber am Android funktioniert es so.

    Dankeschön!!

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Ich habe zwar kein Android aber bringt es etwas das Caching im Header der Visu zu deaktivieren z.B. mit:
    Code:
    <meta http-equiv="cache-control" content="no-cache">
    oder
    request.setRequestHeader('If-Modified-Since','Sat, 9 October 2010 00:00:00 GMT');
    //verhindert Cachen durch Setzen auf ein Datum aus der Vergangenheit: Dokument veraltet -> Neuladen
    Quelle: http://www.ajax-community.de/allgemein/3111-browser-cache-deaktivieren.html
    Weitere Möglichkeiten sind in der Quelle zu finden...

    Einen Kommentar schreiben:


  • vlamers
    antwortet
    Hallo,

    also ich hab mich letzte Nacht ein wenig mit dem Android Problem beschäftigt.

    Es liegt definitiv am Caching dass man die Switches nur 2 mal drücken kann.
    Mein Bruder hat mir einen Browser "launcher" geschrieben für meine Endgeräte.
    Dieser Launcher macht einfach nur ne Webseite als Homescreen auf. Wahlweise mit/ohne Caching und Wahlweise in Fullscreen mit/ohne Statusleiste.
    Probleme gab es anfangs mit der htaccess abfrage. Diese ist einfach statisch in den Einstellungen vorzunehmen.

    https://market.android.com/details?i...il.BrowserHome

    Mit einer sehr bearbeiteten android Version am Flytouch3 gibt es mit der CometVisu noch ein Problem. Werde mich heute Abend darum kümmern.

    Gruß Volker

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Meine Meinung. Wenns stört, könnte man dann eh noch einen "nicht stören"-Mode nachrüsten. Im FR ist daher diesbezüglich nix erwähnt.

    Einen Kommentar schreiben:


  • makki
    antwortet
    Das eine wäre ein timeout, das andere eine Queue für Popups/Meldungen. Das entfernen nach Wertänderung müsste man in jNotify "nachrüsten"..

    Man kann hier ja durchaus gängigen Desktop-Gedanken folgen:
    Mark Shuttleworth » Blog Archive » Notifications, indicators and alerts
    Also ich würde wieder das nehmen (wird im Editor verwendet):
    Giva Labs - jNotify jQuery Plug-in | Giva

    Letzteres sehe ich ehrlichgesagt nicht als grosses Problem. Man schickt solche Popups ja nun nicht ständig und wenn eins kommt ist halt grad mal Ende mit sliden

    Makki

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Es ging um die obigen Fragen:

    - wie wird das zukleistern der Visu mit zig Popus verhindert (Visu oder Logik)?
    - wie wird verhindert, das Popup oder Seidenaufruf aktiviert werden, während die Frau gerade den Dimmslider bedient (Logik oder Visu)?
    usw.

    Einen Kommentar schreiben:


  • makki
    antwortet
    Zitat von greentux Beitrag anzeigen
    Wenn man anfängt über die oben genannten Punkte nachzudenken, fällt es schon schwer, Logik und Visu auseinanderzuhalten.
    Eigentlich nicht
    Visu=basiert auf Wert vom Backend, zeigt an, sendet einen neuen.
    Logik=macht selbständig a wenn b=c o.ä.

    Alleine aus Erfahrung mit gefühlt 5 Logikengines und 10 Visus würde ich auch nahelegen, das so zu belassen Sonst kommt man bestenfalls schnell in den Wald.. CF ist ein tolles Beispiel, wie man möglichst komplex Visu&Logik verquer verstricken kann; geht. Aber sinnvoll=??

    Um bei dem Mülltonnen-Beispiel zu bleiben: wenn die draussen ist, sollte es doch nicht auf den anderen 4 Visus im Haus noch immer angezeigt und als Meldung auf die Dreambox gesendet werden, oder? (Egal ob HS, EibPC, Perl-Plugin das macht!)
    Also muss das Popup in der Visu eine GA auf 0 setzen, sonst nichts..

    Makki

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Wenn man anfängt über die oben genannten Punkte nachzudenken, fällt es schon schwer, Logik und Visu auseinanderzuhalten.
    Daher hatte ich vorgeschlagen, die Punkte nicht zu betrachten und es erstmal einzubauen.
    Ggf. ist dann mal die Logik weiter oder man steckt etwas Brain in die Visu.

    Einen Kommentar schreiben:


  • makki
    antwortet
    Popup

    Sehe ich genauso:
    Ein an eine GA gekoppeltes Popup macht IMHO absolut Sinn! Das ist eben keine Logik sondern von der Logik(vorerst evtl. Perl-Plugin) gesteuert. Und damit auch sinnig&konsistent auf mehreren parallel laufenden Visus.

    - Das geht auf/sichtbar wenn GA=1 (oder was auch immer), egal ob aktuell laufend oder beim Laden nach einem Suspend (abzufangen: mehrere sollten sich übereinander stacken?!)
    - Weg/unsichtbar wenn GA=0


    Klassisches Beispiel: Die Mülltonnen (wir müssen die dummerweise am Vorabend rausstellen):
    Auf dem Popup gibts zwei Buttons (X=verschwinde->später, Ok-Haken=erledigt, setze Rückmelde-GA auf 0 und lösche damit auch alle anderen Popups/DM-Meldungen etc)

    Attribute/Parameter in der config wären also IMHO:
    - GA zum Aufruf
    - (optional) zweite Rückmelde-GA zum löschen -> sonst die GA zum Aufruf (ich habs bei mir getrennt..)
    - einen (statischen) Text
    - (optional) ein Custom-Icon (Bild) - hier die gelbe/grüne/blaue/.. Tonne
    - (optional) persistent/Anzeige-Timeout
    - (optional falls jQnotify): position (oben, unten,..)
    - (optional falls jQnotify): severity Info/Warning/Error

    -> Der faule Mensch in mir denkt spontan an jQNotify! (das was im Editor für die Meldungen verwendet wird), müsste man höchstens die Bilder und ACK vs. Wegdrücken nachrüsten. Könnte man auch aus der Box schon für verschiedene Designs anpassen..
    Damit man sich darunter auch was vorstellen kann zwei Beispiele im Anhang: Müll-popup der HS-Visu und Fehlermeldung von jQNotify..

    Makki
    Angehängte Dateien

    Einen Kommentar schreiben:

Lädt...
X