Rolf B: Große JS-Dateien

Beitrag lesen

Hallo fischlak,

rawText.replace(/^"|"$/g, "")

rawText.trim('"') passt nicht? Kann rawText denn weitere Anführungszeichen enthalten? "Das ist ein "Haus"" wäre für trim() tödlich. Es wäre allerdings auch für deinen Regex-Replace tödlich, wenn rawText keine Anführungszeichen als Delimiter enthält. Ist sichergestellt, dass der Inhalt rawText immer in Anführungszeichen steht oder sind die optional? Optionale Anführungszeichen und ein escaptes inneres Anführungszeichen am Ende wären ganz böse. Äh, sorry, mein Bugslayer-Gaul geht gerade mit mir durch…

Kurz gesagt: Eigentlich sollten die Anführungszeiche an Anfang und Ende nur entfernt werden, wenn sie paarig sind. rawText.replace(/^"(.*)"$/g, "$1") wäre sicherer.

Übrigens befand sich der unfertige Code-Abschnitt von vorhin inmitten einer Schleife.

Beachte:

for (let i=0; i<10; i++) {
   function foo(x) {
      return 2*x;
   }
   let j = foo(i);
}

Funktionen in JavaScript sind bekanntlich Objekte erster Klasse. Heißt: Pro Durchlauf erzeugt JavaScript ein Function-Objekt und macht es im Scope der for-Schleife unter dem Namen foo verfügbar.

Pro Funktionsaufruf wird dann noch ein Function-Scope erzeugt, was so eine Art internes Objekt ist. Beide Objekte müssen nach jedem Schleifendurchlauf vom Garbage-Collector entsorgt werden.

Bei 10 Durchläufen tut das nicht weh. Bei 1000 scheinbar auch nicht, aber für ein armes kleines Mobilchen bedeutet das, dass seine CPU länger ticken muss und länger am Akku nuckelt. Je nach Häufigkeit dieser Schleife kann das am Ende sichtbare Folgen für die Laufzeit haben.

Nur so als Denkanstoß für die Auswirkungen deiner Methode.

Rolf

--
sumpsi - posui - obstruxi
0 70

Große JS-Dateien

fischlak
  • javascript
  • software
  1. 0
    Rolf B
    1. 0
      fischlak
      1. 0
        Rolf B
        1. 0
          fischlak
          1. 0
            Felix Riesterer
            1. 0
              fischlak
              1. 0
                Felix Riesterer
                1. 0
                  fischlak
                  1. 1
                    Rolf B
                    1. 0
                      fischlak
                      1. 0
                        Rolf B
                        1. 0
                          fischlak
                    2. 0
                      Hawk
                      1. 0
                        Rolf B
                        1. 0
                          fischlak
                        2. 0
                          Hawk
                        3. 0
                          fischlak
                          1. 0
                            Rolf B
                            1. 0
                              fischlak
                              1. 0
                                Felix Riesterer
                              2. 0
                                Felix Riesterer
                            2. 0
                              fischlak
                              1. 1
                                Rolf B
                                1. 0
                                  fischlak
                                  1. 0
                                    Felix Riesterer
                                    1. 0
                                      fischlak
                                      1. 0
                                        Felix Riesterer
                                        1. 0
                                          fischlak
                                        2. 0
                                          fischlak
                                      2. 0
                                        Rolf B
                                        1. 0
                                          fischlak
                                        2. 0
                                          Robert B.
                                          • javascript
                                  2. 0
                                    Robert B.
                                    • javascript
                                    • performance
                                    • software
                                    1. 0
                                      fischlak
                                      1. 0
                                        Felix Riesterer
                                        1. 0
                                          fischlak
                                        2. 0
                                          fischlak
                                          1. 0
                                            Julius
                                            • editor
                                            • microsoft
                                            • software
                                            1. 0
                                              fischlak
                                          2. 0
                                            encoder
                                            1. 0
                                              fischlak
                                              1. 1
                                                Felix Riesterer
                                                1. 0
                                                  fischlak
                                                2. 0
                                                  fischlak
                                                3. 0
                                                  fischlak
  2. 0
    encoder
    1. 0
      fischlak
      1. 0
        Felix Riesterer
        1. 0
          Rolf B
          1. 0
            Gunnar Bittersmann
            • css
            • html
            • test
            1. 0
              Rolf B
              1. 0
                Gunnar Bittersmann
        2. 0
          fischlak
          1. 0
            Rolf B
    2. 0
      fischlak
      1. 0
        Felix Riesterer
        1. 0
          fischlak
      2. 0
        Rolf B
        1. 0
          fischlak
          1. 1
            Rolf B
            1. 0
              fischlak
              1. 0
                Rolf B
                1. 0
                  fischlak
                  1. 0
                    Felix Riesterer
                    1. 0
                      fischlak
                      1. 0
                        Felix Riesterer
                        1. 0
                          fischlak
            2. 0
              MudGuard
        2. 0
          ottogal