Christian Kruse: DOM, XML Attributtypen, getElementsByName()

Beitrag lesen

你好 molily,

Ich möchte im JS ja irgendwie an die Daten kommen, deshalb mache ich
den Request. Wenn mir da ein Cache von einer vergangenen Session
reinhaut ist das nicht so prickelnd

Anscheinend vermischt du zwei Sachen. Ich redete über einen Conditional
GET, den Opera sendet, falls der Server ETag oder Last-Modified auf den
ersten Request geantwortet hat. Darin sehe ich, wenn auf der Serverseite
nicht absichtlich Unsinn veranstaltet wird, wie in
https://forum.selfhtml.org/?t=116872&m=748770 ausgeführt kein
Problem. Man bekommt immer die aktuellen Daten und falls der
XMLHttpRequest ein CGI-Programm auf dem Server ausführen soll, wird
dieses in jedem Fall korrekt ausgeführt.

Wo soll ich denn die Daten herbekommen? Sie sind in Operas Cache – schön,
ich will sie aber verwenden können, im Cache helfen sie mir wenig. Bei
einem 304-Response ist responseText leer.

Was du wahrscheinlich meinst (vielleicht meinte auch Christoph dies):
Wenn in den Opera-Einstellungen unter »Check documents« nicht »Always«
steht bzw. eine entsprechend geringe Zeitspanne, dann führt Opera *gar
keinen* (also nicht einmal einen konditionalen) Request zum Server durch,
sondern entnimmt die Ressource direkt aus dem Festplatten-Cache.

Wenn er mir die Ressource zur Verfügung stellen würde, wäre mir das egal.
Aber ich komme effektiv nicht an die Daten.

Ich musste wirklich auf &unique=<timestamp> ausweichen, um an die Daten
zu kommen.

Ja, das ist der Ausweg zur Umgehung des Cache-Problems. Wenn hingegen der
Conditional GET Schwierigkeiten machen sollte, sollte man einfach den
Server/die CGI-Logik dazu bringen, sinnvolle oder keine Last-Modified-
und ETag-Header zu senden.

Meine Server-Logik sendet vollständig richtige Last-Modified-Header und
schickt einen 304, wenn es die Situation zulässt. Aber anstatt das Opera
die Daten aus dem Cache in den responseText oder ein ähnliches Attribut
setzt, sind sie einfach nicht vorhanden. Gut, man könnte jetzt
argumentieren, dass man dann in JS einen eigenen Cache implementieren
müsse. Halte ich war nicht für sinnvoll, aber es sprechen auch technische
Dinge dagegen: sobald man einen Reload gemacht hat, ist der Cache
dahingeschieden. Ich komme also nicht mehr an die Daten, um sie eventuell
weiterzuverwenden.

Das machst du ja beim Cforum z.B. beim Auf-/Zuklappen der Threads,
lediglich &unique=... durchkreuzt dies zur Behebung des Cache-Problems.

Eben das ist eine der Situationen, in denen ich gern verhindern würde, dass
ein Conditional GET gesendet wird, damit ich an die Daten komme.

再见,
 克里斯蒂安

--
Plasma-Bildschirm geklaut | Zahnarztbesuch
Microsoft: Where do you want to go today?
Linux: Where do you want to go tomorrow?
FreeBSD: Are you guys coming, or what?
http://wwwtech.de/
0 58

XMLHttpRequest für Firefox

Marco
  • javascript
  1. 0
    Marc Reichelt
    1. 1
      Christian Kruse
  2. 0
    Christoph Zurnieden
  3. 0
    Struppi
    1. 0
      Marco
    2. 0

      XMLHttpRequest und Opera mit 304

      Christoph Zurnieden
      1. 0
        molily
        1. 0
          Christoph Zurnieden
          1. 2
            molily
            1. 0
              Christoph Zurnieden
              1. 1

                DOM, XML Attributtypen, getElementsByName()

                Tim Tepaße
                1. 0
                  Christian Kruse
                  1. 0
                    molily
                    1. 0
                      Christian Kruse
                      1. 0
                        molily
                        1. 0
                          Christian Kruse
                2. 0
                  Christoph Zurnieden
                  1. 0
                    Christian Kruse
                    1. 0

                      xml:id, getElementById()

                      Tim Tepaße
                      1. 0
                        molily
                    2. 0
                      Christoph Zurnieden
                      1. 0
                        Christian Kruse
                        1. 0
                          Christoph Zurnieden
                          1. 0
                            Christian Kruse
                      2. 0
                        Christian Kruse
                        1. 0
                          Christoph Zurnieden
                          1. 0
                            Christian Kruse
                            1. 0
                              Christoph Zurnieden
                              1. 0
                                Christian Kruse
                                1. 0
                                  Christoph Zurnieden
                                  1. 0
                                    Christian Kruse
                                    1. 0
                                      Christoph Zurnieden
                                      1. 0
                                        Christian Kruse
                                        1. 0
                                          Christoph Zurnieden
                                          1. 0
                                            Christian Kruse
                                            1. 0
                                              Christoph Zurnieden
      2. 0
        Orlando
        1. 0
          Christian Kruse
        2. 0
          Christoph Zurnieden
          1. 0
            Ashura
          2. 0
            molily
            1. 0
              Christoph Zurnieden
              1. 0
                molily
                1. 0
                  Christoph Zurnieden
              2. 0
                at
                1. 0
                  Christoph Zurnieden
                  1. 0
                    at
                    1. 0
                      Christoph Zurnieden
                      1. 0
                        at
  4. 0
    Raik
    1. 0
      Thomas Meinike
      1. 0
        Raik
        1. 0
          Raik
        2. 0

          wozu ist readyState 1-3 nutzbar?

          Raik
          1. 3
            Tim Tepaße
            1. 0
              Raik
            2. 0
              Christoph Zurnieden