Skip to content

Instantly share code, notes, and snippets.

Revisions

  1. @jakub-g jakub-g revised this gist Feb 6, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -21,4 +21,4 @@ Summary:
    - ⚠ Safari <11 may or may not double fetch (even with the hack); it does not on small test pages, but in real complex pages it does (it seems deterministic, but not clear what's the exact trigger)
    - ⚠ Safari 11+ may still double fetch in some cases (see https://bugs.webkit.org/show_bug.cgi?id=194337)
    - ❌ pre-2018 browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
    - ❌❌ latest Edge does triple fetch (2x module + 1x nomodule)
  2. @jakub-g jakub-g revised this gist Feb 6, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,7 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    Summary:
    - ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc))
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ✅ modern Chrome and Firefox never fetch more than necessary
    - ⚠ Safari <11 may or may not double fetch (even with the hack); it does not on small test pages, but in real complex pages it does (it seems deterministic, but not clear what's the exact trigger)
    - ⚠ Safari 11+ may still double fetch in some cases (see https://bugs.webkit.org/show_bug.cgi?id=194337)
    - ❌ pre-2018 browsers do double fetches
  3. @jakub-g jakub-g revised this gist Feb 6, 2019. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -13,11 +13,12 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    | 16 | | |10.1/3 | v | v |module ||
    | 17-18 | | | | double! | v |module |❌❌|
    | | |56-60 | | | v |nomodule||
    | | 60+ | 61+ |11.0+ | v | |module ||
    | | 60+ | 61+ |11.0+* | v | |module ||

    Summary:
    - ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc)
    - ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc))
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ⚠ Safari <11 may or may not double fetch (even with the hack); it does not on small test pages, but in real complex pages it does (it seems deterministic, but not clear what's the exact trigger)
    - ⚠ Safari 11+ may still double fetch in some cases (see https://bugs.webkit.org/show_bug.cgi?id=194337)
    - ❌ pre-2018 browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  4. @jakub-g jakub-g revised this gist Jan 25, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -18,6 +18,6 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    Summary:
    - ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc)
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ⚠ Safari <11 may or may not double fetch (even with the hack); it does not on small test pages, but in real complex pages it does
    - ⚠ Safari <11 may or may not double fetch (even with the hack); it does not on small test pages, but in real complex pages it does (it seems deterministic, but not clear what's the exact trigger)
    - ❌ pre-2018 browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  5. @jakub-g jakub-g revised this gist Jan 25, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -18,6 +18,6 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    Summary:
    - ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc)
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ⚠ Safari <11 may or may not double fetch (even with the hack)
    - ⚠ Safari <11 may or may not double fetch (even with the hack); it does not on small test pages, but in real complex pages it does
    - ❌ pre-2018 browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  6. @jakub-g jakub-g revised this gist Jan 25, 2019. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -18,5 +18,6 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    Summary:
    - ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc)
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ⚠ Safari <11 may or may not double fetch (even with the hack)
    - ❌ pre-2018 browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  7. @jakub-g jakub-g revised this gist Jan 25, 2019. 1 changed file with 8 additions and 9 deletions.
    17 changes: 8 additions & 9 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -7,17 +7,16 @@ Testing double-fetching of `module`/`nomodule` JS code (including [the Safari ha

    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|executes| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|:------:|----|
    | 15- | 59- | 55- |10.0- | v | v |nomodule||
    |IE/Edge|Firefox|Chrome|Safari |fetches module|fetches nomodule|executes| |
    |:-----:|:-----:|:----:|:-----:|:------------:|:--------------:|:------:|----|
    | 15- | 59- | 55- |10.0- | v | v |nomodule||
    | 16 | | |10.1/3 | v | v |module ||
    | 17-18 | | | | double! | v |module |❌❌|
    | | |56-60 |10.0- | | v |nomodule||
    | | 60+ | 61+ |11.0+ | v | |module ||
    | 17-18 | | | | double! | v |module |❌❌|
    | | |56-60 | | | v |nomodule||
    | | 60+ | 61+ |11.0+ | v | |module ||

    Summary:
    - ✅ no browser does double execution
    - ✅ Safari never fetches more than necessary (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc) for 10.1 / iOS 10.3 is included in the top of HTML)
    - ✅ no browser does double execution (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc)
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ❌ pre-2018 browsers (except Safari) do double fetches
    - ❌ pre-2018 browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  8. @jakub-g jakub-g revised this gist Jan 25, 2019. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -9,11 +9,11 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|executes| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|:------:|----|
    | 15- | 59- | 55- | | v | v |nomodule||
    | 16 | | | | v | v |module ||
    | 15- | 59- | 55- |10.0- | v | v |nomodule||
    | 16 | | |10.1/3 | v | v |module ||
    | 17-18 | | | | double! | v |module |❌❌|
    | | |56-60 |10.0- | | v |nomodule||
    | | 60+ | 61+ |10.1+ | v | |module ||
    | | 60+ | 61+ |11.0+ | v | |module ||

    Summary:
    - ✅ no browser does double execution
  9. @jakub-g jakub-g revised this gist Dec 12, 2018. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -16,7 +16,8 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    | | 60+ | 61+ |10.1+ | v | |module ||

    Summary:
    - ✅ no browser does double execution
    - ✅ Safari never fetches more than necessary (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc) for 10.1 / iOS 10.3 is included in the top of HTML)
    - ✅ modern browsers, except Edge, never fetch more than necessary
    -old non-Safari browsers do double fetches
    -pre-2018 browsers (except Safari) do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  10. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -16,7 +16,7 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    | | 60+ | 61+ |10.1+ | v | |module ||

    Summary:
    - ✅ Safari never fetches more than necessary (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc) is included in the top of HTML)
    - ✅ Safari never fetches more than necessary (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc) for 10.1 / iOS 10.3 is included in the top of HTML)
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ❌ old non-Safari browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  11. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -16,7 +16,7 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    | | 60+ | 61+ |10.1+ | v | |module ||

    Summary:
    - ✅ Safari never fetches more than necessary
    - ✅ Safari never fetches more than necessary (provided [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc) is included in the top of HTML)
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ❌ old non-Safari browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  12. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -9,7 +9,8 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|executes| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|:------:|----|
    | 16- | 59- | 55- | | v | v |nomodule||
    | 15- | 59- | 55- | | v | v |nomodule||
    | 16 | | | | v | v |module ||
    | 17-18 | | | | double! | v |module |❌❌|
    | | |56-60 |10.0- | | v |nomodule||
    | | 60+ | 61+ |10.1+ | v | |module ||
  13. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -10,7 +10,7 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|executes| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|:------:|----|
    | 16- | 59- | 55- | | v | v |nomodule||
    | 17-18 | | | | double! | v |nomodule|❌❌|
    | 17-18 | | | | double! | v |module |❌❌|
    | | |56-60 |10.0- | | v |nomodule||
    | | 60+ | 61+ |10.1+ | v | |module ||

  14. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@ Testing double-fetching of `module`/`nomodule` JS code (including [the Safari ha
    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|executes| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|--------|----|
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|:------:|----|
    | 16- | 59- | 55- | | v | v |nomodule||
    | 17-18 | | | | double! | v |nomodule|❌❌|
    | | |56-60 |10.0- | | v |nomodule||
  15. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -7,12 +7,12 @@ Testing double-fetching of `module`/`nomodule` JS code (including [the Safari ha

    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|-|
    | 16- | 59- | 55- | | v | v ||
    | 17-18 | | | | double! | v |❌❌|
    | | |56-60 |10.0- | | v ||
    | | 60+ | 61+ |10.1+ | v | ||
    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|executes| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|--------|----|
    | 16- | 59- | 55- | | v | v |nomodule||
    | 17-18 | | | | double! | v |nomodule|❌❌|
    | | |56-60 |10.0- | | v |nomodule||
    | | 60+ | 61+ |10.1+ | v | |module ||

    Summary:
    - ✅ Safari never fetches more than necessary
  16. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    Testing double-fetching of `module`/`nomodule` JS code (including the Safari hack)
    Testing double-fetching of `module`/`nomodule` JS code (including [the Safari hack](https://gist.github.com/samthor/64b114e4a4f539915a95b91ffd340acc))

    ```
    <script type="module" src="module.js"></script>
  17. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -9,10 +9,10 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|-|
    | 16- | 59- | 55- | | x | x ||
    | 17-18 | | | | double! | x |❌❌|
    | | |56-60 |10.0- | | x ||
    | | 60+ | 61+ |10.1+ | x | ||
    | 16- | 59- | 55- | | v | v ||
    | 17-18 | | | | double! | v |❌❌|
    | | |56-60 |10.0- | | v ||
    | | 60+ | 61+ |10.1+ | v | ||

    Summary:
    - ✅ Safari never fetches more than necessary
  18. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 7 additions and 1 deletion.
    8 changes: 7 additions & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -12,4 +12,10 @@ Test page: https://jg-testpage.github.io/es-modules/module-nomodule/
    | 16- | 59- | 55- | | x | x ||
    | 17-18 | | | | double! | x |❌❌|
    | | |56-60 |10.0- | | x ||
    | | 60+ | 61+ |10.1+ | x | ||
    | | 60+ | 61+ |10.1+ | x | ||

    Summary:
    - ✅ Safari never fetches more than necessary
    - ✅ modern browsers, except Edge, never fetch more than necessary
    - ❌ old non-Safari browsers do double fetches
    - ❌❌ newest Edge does triple fetch (2x module + 1x nomodule)
  19. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -7,8 +7,8 @@ Testing double-fetching of `module`/`nomodule` JS code (including the Safari hac

    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule||
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:||
    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule| |
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|-|
    | 16- | 59- | 55- | | x | x ||
    | 17-18 | | | | double! | x |❌❌|
    | | |56-60 |10.0- | | x ||
  20. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 6 additions and 5 deletions.
    11 changes: 6 additions & 5 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -7,8 +7,9 @@ Testing double-fetching of `module`/`nomodule` JS code (including the Safari hac

    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|
    | all | 59- | 55- | | x | x |
    | | |56-60 |10.0- | | x |
    | | 60+ | 61+ |10.1+ | x | |
    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule||
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:||
    | 16- | 59- | 55- | | x | x ||
    | 17-18 | | | | double! | x |❌❌|
    | | |56-60 |10.0- | | x ||
    | | 60+ | 61+ |10.1+ | x | ||
  21. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@ Testing double-fetching of `module`/`nomodule` JS code (including the Safari hac
    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|
    |-------|-------|------|------|--------------|----------------|
    |:-----:|:-----:|:----:|:----:|:------------:|:--------------:|
    | all | 59- | 55- | | x | x |
    | | |56-60 |10.0- | | x |
    | | 60+ | 61+ |10.1+ | x | |
  22. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,10 @@
    Testing double-fetching of `module`/`nomodule` JS code (including the Safari hack)

    ```
    <script type="module" src="module.js"></script>
    <script nomodule src="nomodule.js"></script>
    ```

    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|
  23. @jakub-g jakub-g revised this gist Dec 10, 2018. 1 changed file with 4 additions and 1 deletion.
    5 changes: 4 additions & 1 deletion double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,9 @@
    Testing double-fetching of module/nomodule JS code
    Testing double-fetching of `module`/`nomodule` JS code (including the Safari hack)

    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|
    |-------|-------|------|------|--------------|----------------|
    | all | 59- | 55- | | x | x |
    | | |56-60 |10.0- | | x |
    | | 60+ | 61+ |10.1+ | x | |
  24. @jakub-g jakub-g created this gist Dec 10, 2018.
    6 changes: 6 additions & 0 deletions double-fetch-triple-fetch.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    Testing double-fetching of module/nomodule JS code

    Test page: https://jg-testpage.github.io/es-modules/module-nomodule/

    |IE/Edge|Firefox|Chrome|Safari|fetches module|fetches nomodule|
    |-------|-------|------|------|--------------|----------------|