Reihenfolge von JavaScript & lt; script & gt; Tag-Ausführungen nicht in gängigen Browsern garantiert?

Ist es wahr, dass es gibt keine Garantien in den wichtigsten Browsern, die die folgenden script-tags immer ausführen, sowohl sequentiell UND in der Reihenfolge der Deklaration? also sollte ich davon ausgehen, dass der folgende code wird nicht immer Ertrag x == 'ab' in Alarm?

<head>
    <script type="text/javascript">
      //tag A
      var x = x || ''; x += 'a';
    </script>
    <script type="text/javascript">
      //tag B
      var x = x || ''; x += 'b';
    </script>
</head>
<body>
    <script type="text/javascript">
       alert('x='+x);
    <script>
</body>

... und es ist möglich, dass x wird stattdessen eine der folgenden:

  1. 'ba' - wenn tag-B wird ausgeführt, bevor Ein
  2. 'a' oder 'b' - race-Bedingung, wobei A und B parallel ausgeführt werden (Obwohl scheint, wie diese thread klar sagt, dass nur Browser weisen einen einzelnen thread, JS)

InformationsquelleAutor der Frage Nikita | 2010-07-12

Schreibe einen Kommentar