Gunnar Bittersmann: Dokumente überblenden

Beitrag lesen

@@Gunnar Bittersmann

Sicher kann man auch beides kombinieren: Beim erstmaligen Aufruf schreibt der Server das Stylesheet ins HTML, ein clientseitiges Script nimmt sich den Inhalt dieses style-Elements und packt ihn in den localStorage.

Das sollte dann in etwa so aussehen (ohne die Versionskontrolle, die man sicherlich noch mit einbauen möchte):

<?php if (isset($_COOKIE['myStylesheet'])): ?>
  <script>
  if (localStorage && localStorage.getItem('myStylesheet'))
  {
    var styleElement = document.createElement('style');
    styleElement.innerText = localStorage.getItem('myStylesheet');
    document.head.appendChild(styleElement);
  }
  else
  {
    var linkElement = document.createElement('link');
    linkElement.rel = 'stylesheet';
    linkElement.href = 'http://example.net/mystylesheet.css';
    document.head.appendChild(linkElement);
  }
  </script>
<?php else: ?>
  <style id="myStylesheet">
    <?php readfile('mystylesheet.css'); ?>
  </style>
  <script>
  if (localStorage)
  {
    localStorage.setItem('myStylesheet', document.querySelector('#myStylesheet').innerText);
    document.cookie = 'myStylesheet=true';
  }
  </script>
<?php endif; ?>

Das ist noch nicht das Ende der Fahnenstange. Für Browser, die kein localStorage unterstützen, wird jedes Mal das Stylesheet ins HTML geschrieben. Um das zu verhindern, braucht man wohl zwei Cookies.

LLAP 🖖

--
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
0 62

Dokumente überblenden

TS
  • css
  1. 0
    Matthias Apsel
    1. 0
      JürgenB
      1. 0
        Rolf b
        1. 0
          JürgenB
          1. 0
            JürgenB
  2. 1
    Gunnar Bittersmann
    1. 0
      Mitleser
    2. 0
      Matthias Apsel
      1. 0
        JürgenB
        1. 0
          Matthias Apsel
          1. 0
            TS
        2. 0
          beatovich
          1. 0
            JürgenB
            1. 0
              beatovich
              1. 0
                JürgenB
        3. 3
          Gunnar Bittersmann
          1. 0
            JürgenB
            1. 0
              Gunnar Bittersmann
              • css
              • javascript
              • performance
              1. 0
                Mitleser
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    TS
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        TS
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            TS
                            1. 0
                              Camping_RIDER
                              1. 0
                                Gunnar Bittersmann
                                1. 0
                                  Camping_RIDER
                                  1. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      Gunnar Bittersmann
                                    2. 0
                                      Mitleser
                                      1. 0
                                        Camping_RIDER
                                  2. 0
                                    Camping_RIDER
                            2. 1
                              Gunnar Bittersmann
                              1. 0

                                Dokumente überblenden, Local Storage, Race Conditions

                                TS
                                • css
                                • javascript
                                • local storage
                                1. 0
                                  dedlfix
                                  1. 0
                                    TS
                                    1. 0
                                      dedlfix
                                  2. 0
                                    TS
                                    • local storage
                                    • selfhtml-wiki
                                    1. 0
                                      dedlfix
                              2. 0
                                Camping_RIDER
                                1. 0
                                  Camping_RIDER
                                  1. 0
                                    TS
                                  2. 0
                                    Gunnar Bittersmann
                                    1. 0
                                      Camping_RIDER
                                      1. 0
                                        Gunnar Bittersmann
                                        1. 0
                                          TS
                                          • css
                                          • javascript
                                        2. 0
                                          Camping_RIDER
                                          1. 0
                                            TS
                                            1. 0
                                              Camping_RIDER
                              3. 1
                                Matthias Apsel
                  2. 0
                    Mitleser
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Mitleser
                        1. 0
                          TS
                          • menschelei
              2. 0
                Rolf b
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    TS
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        TS
                        1. 0
                          Rolf b