Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix prefetching in IE11 #19171

Merged
merged 10 commits into from
Nov 15, 2020
Merged

Fix prefetching in IE11 #19171

merged 10 commits into from
Nov 15, 2020

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented Nov 14, 2020

@vercel vercel bot temporarily deployed to Preview November 14, 2020 16:25 Inactive
@ijjk
Copy link
Member Author

ijjk commented Nov 14, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 10.9s 11.2s ⚠️ +303ms
nodeModulesSize 85 MB 85 MB ⚠️ +440 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
/ failed reqs 0 0
/ total time (seconds) 2.057 1.961 -0.1
/ avg req/sec 1215.39 1275.07 +59.68
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.091 1.073 -0.02
/error-in-render avg req/sec 2291.78 2329.82 +38.04
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB 12.7 kB ⚠️ +14 B
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB ⚠️ +14 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB 8.25 kB ⚠️ +15 B
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB ⚠️ +15 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
index.html gzip 968 B 966 B -2 B
link.html gzip 975 B 974 B -1 B
withRouter.html gzip 962 B 960 B -2 B
Overall change 2.9 kB 2.9 kB -5 B

Diffs

Diff for 677f882d2ed8..a6.module.js
@@ -434,16 +434,19 @@
           : prom;
       }
 
-      function hasPrefetch(link) {
+      function hasRel(rel, link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
-        } catch (_unused) {
-          return false;
-        }
+          return link.relList.supports(rel);
+        } catch (_unused) {}
       }
 
-      var canPrefetch = hasPrefetch();
+      var relPrefetch =
+        hasRel("preload") && !hasRel("prefetch") // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            "preload" // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            "prefetch";
 
       function prefetchViaDom(href, as, link) {
         return new Promise((res, rej) => {
@@ -458,7 +461,7 @@
           link = document.createElement("link"); // The order of property assignment here is intentional:
 
           if (as) link.as = as;
-          link.rel = "prefetch";
+          link.rel = relPrefetch;
           link.crossOrigin = "anonymous";
           link.onload = res;
           link.onerror = rej; // `href` should always be last:
@@ -682,11 +685,7 @@
             return getFilesForRoute(assetPrefix, route)
               .then(output =>
                 Promise.all(
-                  canPrefetch
-                    ? output.scripts.map(script =>
-                        prefetchViaDom(script, "script")
-                      )
-                    : []
+                  output.scripts.map(script => prefetchViaDom(script, "script"))
                 )
               )
               .then(() => {
Diff for 677f882d2ed8..8c8c6127b.js
@@ -474,16 +474,19 @@
           : prom;
       }
 
-      function hasPrefetch(link) {
+      function hasRel(rel, link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
-        } catch (_unused) {
-          return false;
-        }
+          return link.relList.supports(rel);
+        } catch (_unused) {}
       }
 
-      var canPrefetch = hasPrefetch();
+      var relPrefetch =
+        hasRel("preload") && !hasRel("prefetch") // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            "preload" // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            "prefetch";
 
       function prefetchViaDom(href, as, link) {
         return new Promise(function(res, rej) {
@@ -498,7 +501,7 @@
           link = document.createElement("link"); // The order of property assignment here is intentional:
 
           if (as) link.as = as;
-          link.rel = "prefetch";
+          link.rel = relPrefetch;
           link.crossOrigin = "anonymous";
           link.onload = res;
           link.onerror = rej; // `href` should always be last:
@@ -792,11 +795,9 @@
             return getFilesForRoute(assetPrefix, route)
               .then(function(output) {
                 return Promise.all(
-                  canPrefetch
-                    ? output.scripts.map(function(script) {
-                        return prefetchViaDom(script, "script");
-                      })
-                    : []
+                  output.scripts.map(function(script) {
+                    return prefetchViaDom(script, "script");
+                  })
                 );
               })
               .then(function() {
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ce541bb85fc2f615125.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ce541bb85fc2f615125.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ce541bb85fc2f615125.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 12.3s 12.6s ⚠️ +279ms
nodeModulesSize 85 MB 85 MB ⚠️ +440 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..1689.js gzip N/A 12.7 kB N/A
Overall change 58.9 kB 58.9 kB ⚠️ +14 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 8.25 kB N/A
Overall change 53.6 kB 53.6 kB ⚠️ +15 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_error.js 918 kB 918 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB
link.js 976 kB 976 kB ⚠️ +192 B
routerDirect.js 969 kB 969 kB ⚠️ +192 B
withRouter.js 969 kB 969 kB ⚠️ +192 B
Overall change 4.76 MB 4.76 MB ⚠️ +576 B
Commit: 1109916

@ijjk

This comment has been minimized.

@vercel vercel bot temporarily deployed to Preview November 14, 2020 16:45 Inactive
@ijjk
Copy link
Member Author

ijjk commented Nov 14, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 13.4s 13.4s -51ms
nodeModulesSize 85 MB 85 MB ⚠️ +440 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
/ failed reqs 0 0
/ total time (seconds) 2.475 2.375 -0.1
/ avg req/sec 1009.94 1052.78 +42.84
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.273 1.256 -0.02
/error-in-render avg req/sec 1963.38 1990.87 +27.49
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB 12.7 kB ⚠️ +14 B
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB ⚠️ +14 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB 8.25 kB ⚠️ +15 B
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB ⚠️ +15 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
index.html gzip 968 B 966 B -2 B
link.html gzip 975 B 974 B -1 B
withRouter.html gzip 962 B 960 B -2 B
Overall change 2.9 kB 2.9 kB -5 B

Diffs

Diff for 677f882d2ed8..a6.module.js
@@ -434,16 +434,19 @@
           : prom;
       }
 
-      function hasPrefetch(link) {
+      function hasRel(rel, link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
-        } catch (_unused) {
-          return false;
-        }
+          return link.relList.supports(rel);
+        } catch (_unused) {}
       }
 
-      var canPrefetch = hasPrefetch();
+      var relPrefetch =
+        hasRel("preload") && !hasRel("prefetch") // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            "preload" // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            "prefetch";
 
       function prefetchViaDom(href, as, link) {
         return new Promise((res, rej) => {
@@ -458,7 +461,7 @@
           link = document.createElement("link"); // The order of property assignment here is intentional:
 
           if (as) link.as = as;
-          link.rel = "prefetch";
+          link.rel = relPrefetch;
           link.crossOrigin = "anonymous";
           link.onload = res;
           link.onerror = rej; // `href` should always be last:
@@ -682,11 +685,7 @@
             return getFilesForRoute(assetPrefix, route)
               .then(output =>
                 Promise.all(
-                  canPrefetch
-                    ? output.scripts.map(script =>
-                        prefetchViaDom(script, "script")
-                      )
-                    : []
+                  output.scripts.map(script => prefetchViaDom(script, "script"))
                 )
               )
               .then(() => {
Diff for 677f882d2ed8..8c8c6127b.js
@@ -474,16 +474,19 @@
           : prom;
       }
 
-      function hasPrefetch(link) {
+      function hasRel(rel, link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
-        } catch (_unused) {
-          return false;
-        }
+          return link.relList.supports(rel);
+        } catch (_unused) {}
       }
 
-      var canPrefetch = hasPrefetch();
+      var relPrefetch =
+        hasRel("preload") && !hasRel("prefetch") // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            "preload" // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            "prefetch";
 
       function prefetchViaDom(href, as, link) {
         return new Promise(function(res, rej) {
@@ -498,7 +501,7 @@
           link = document.createElement("link"); // The order of property assignment here is intentional:
 
           if (as) link.as = as;
-          link.rel = "prefetch";
+          link.rel = relPrefetch;
           link.crossOrigin = "anonymous";
           link.onload = res;
           link.onerror = rej; // `href` should always be last:
@@ -792,11 +795,9 @@
             return getFilesForRoute(assetPrefix, route)
               .then(function(output) {
                 return Promise.all(
-                  canPrefetch
-                    ? output.scripts.map(function(script) {
-                        return prefetchViaDom(script, "script");
-                      })
-                    : []
+                  output.scripts.map(function(script) {
+                    return prefetchViaDom(script, "script");
+                  })
                 );
               })
               .then(function() {
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ce541bb85fc2f615125.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ce541bb85fc2f615125.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5ce541bb85fc2f615125.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.ee4770cd3d7955d7479d.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 15.3s 14.8s -472ms
nodeModulesSize 85 MB 85 MB ⚠️ +440 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..1689.js gzip N/A 12.7 kB N/A
Overall change 58.9 kB 58.9 kB ⚠️ +14 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 8.25 kB N/A
Overall change 53.6 kB 53.6 kB ⚠️ +15 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_error.js 918 kB 918 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB
link.js 976 kB 976 kB ⚠️ +192 B
routerDirect.js 969 kB 969 kB ⚠️ +192 B
withRouter.js 969 kB 969 kB ⚠️ +192 B
Overall change 4.76 MB 4.76 MB ⚠️ +576 B
Commit: 1974079

Copy link
Member

@Timer Timer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure we need to fix this in this way. The code path would likely be skipping the <link rel=prefetch> and just jumping immediately to the script injection phase, right?

Maybe we should disable the script injection in IE11. Blocking this until we can discuss more.

@ijjk
Copy link
Member Author

ijjk commented Nov 14, 2020

A user can still invoke Router.prefetch in IE11 and it be expected to prefetch which this fixes, we don't only need to handle prefetching on hover right? Updated per discussion

@ijjk ijjk requested a review from Timer November 14, 2020 19:10
@vercel vercel bot temporarily deployed to Preview November 14, 2020 22:10 Inactive
@vercel vercel bot temporarily deployed to Preview November 14, 2020 22:15 Inactive
@ijjk
Copy link
Member Author

ijjk commented Nov 14, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 13.2s 13.3s ⚠️ +80ms
nodeModulesSize 85 MB 85 MB ⚠️ +535 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
/ failed reqs 0 0
/ total time (seconds) 2.38 2.394 ⚠️ +0.01
/ avg req/sec 1050.63 1044.13 ⚠️ -6.5
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.254 1.279 ⚠️ +0.02
/error-in-render avg req/sec 1993.6 1955.17 ⚠️ -38.43
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB 12.7 kB ⚠️ +27 B
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB ⚠️ +27 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB 8.26 kB ⚠️ +28 B
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB ⚠️ +28 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
index.html gzip 968 B 967 B -1 B
link.html gzip 975 B 974 B -1 B
withRouter.html gzip 962 B 960 B -2 B
Overall change 2.9 kB 2.9 kB -4 B

Diffs

Diff for 677f882d2ed8..a6.module.js
@@ -443,7 +443,10 @@
         }
       }
 
-      var canPrefetch = hasPrefetch();
+      var canPrefetch =
+        hasPrefetch() || // detect IE11 since it supports prefetch but isn't detected
+        // with relList.support
+        (true && !!window.MSInputMethodContext && !!document.documentMode);
 
       function prefetchViaDom(href, as, link) {
         return new Promise((res, rej) => {
Diff for 677f882d2ed8..8c8c6127b.js
@@ -483,7 +483,10 @@
         }
       }
 
-      var canPrefetch = hasPrefetch();
+      var canPrefetch =
+        hasPrefetch() || // detect IE11 since it supports prefetch but isn't detected
+        // with relList.support
+        (true && !!window.MSInputMethodContext && !!document.documentMode);
 
       function prefetchViaDom(href, as, link) {
         return new Promise(function(res, rej) {
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.0012e7862247aed8e86a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5fe6996d5088f67e58b1.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.0012e7862247aed8e86a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.0012e7862247aed8e86a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5fe6996d5088f67e58b1.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.0012e7862247aed8e86a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.0012e7862247aed8e86a.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.5fe6996d5088f67e58b1.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.0012e7862247aed8e86a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 14.9s 14.8s -99ms
nodeModulesSize 85 MB 85 MB ⚠️ +535 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..8615.js gzip N/A 12.7 kB N/A
Overall change 58.9 kB 58.9 kB ⚠️ +27 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 8.26 kB N/A
Overall change 53.6 kB 53.6 kB ⚠️ +28 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_error.js 918 kB 918 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB
link.js 976 kB 976 kB ⚠️ +104 B
routerDirect.js 969 kB 969 kB ⚠️ +104 B
withRouter.js 969 kB 969 kB ⚠️ +104 B
Overall change 4.76 MB 4.76 MB ⚠️ +312 B
Commit: 40f7a55

@ijjk
Copy link
Member Author

ijjk commented Nov 14, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 13s 13.2s ⚠️ +196ms
nodeModulesSize 85 MB 85 MB ⚠️ +455 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
/ failed reqs 0 0
/ total time (seconds) 2.451 2.373 -0.08
/ avg req/sec 1019.85 1053.68 +33.83
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.262 1.275 ⚠️ +0.01
/error-in-render avg req/sec 1981.08 1960.32 ⚠️ -20.76
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB 12.7 kB ⚠️ +28 B
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB 8.26 kB ⚠️ +30 B
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
index.html gzip 968 B 966 B -2 B
link.html gzip 975 B 974 B -1 B
withRouter.html gzip 962 B 960 B -2 B
Overall change 2.9 kB 2.9 kB -5 B

Diffs

Diff for 677f882d2ed8..a6.module.js
@@ -437,7 +437,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for 677f882d2ed8..8c8c6127b.js
@@ -477,7 +477,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 14.9s 15.1s ⚠️ +215ms
nodeModulesSize 85 MB 85 MB ⚠️ +455 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..776c.js gzip N/A 12.7 kB N/A
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 8.26 kB N/A
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_error.js 918 kB 918 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB
link.js 976 kB 976 kB ⚠️ +164 B
routerDirect.js 969 kB 969 kB ⚠️ +164 B
withRouter.js 969 kB 969 kB ⚠️ +164 B
Overall change 4.76 MB 4.76 MB ⚠️ +492 B
Commit: 574776f

@ijjk

This comment has been minimized.

@vercel vercel bot temporarily deployed to Preview November 15, 2020 03:08 Inactive
@ijjk

This comment has been minimized.

@ijjk
Copy link
Member Author

ijjk commented Nov 15, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 14s 13.9s -37ms
nodeModulesSize 85 MB 85 MB ⚠️ +455 B
Page Load Tests Overall increase ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
/ failed reqs 0 0
/ total time (seconds) 2.695 2.569 -0.13
/ avg req/sec 927.51 973.15 +45.64
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.605 1.596 -0.01
/error-in-render avg req/sec 1557.73 1566.75 +9.02
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB 12.7 kB ⚠️ +28 B
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB 8.26 kB ⚠️ +30 B
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
index.html gzip 968 B 966 B -2 B
link.html gzip 975 B 974 B -1 B
withRouter.html gzip 962 B 960 B -2 B
Overall change 2.9 kB 2.9 kB -5 B

Diffs

Diff for 677f882d2ed8..a6.module.js
@@ -437,7 +437,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for 677f882d2ed8..8c8c6127b.js
@@ -477,7 +477,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 15.9s 16s ⚠️ +161ms
nodeModulesSize 85 MB 85 MB ⚠️ +455 B
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..776c.js gzip N/A 12.7 kB N/A
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 8.26 kB N/A
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_error.js 918 kB 918 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB
link.js 976 kB 976 kB ⚠️ +164 B
routerDirect.js 969 kB 969 kB ⚠️ +164 B
withRouter.js 969 kB 969 kB ⚠️ +164 B
Overall change 4.76 MB 4.76 MB ⚠️ +492 B
Commit: 52626a0

@vercel vercel bot temporarily deployed to Preview November 15, 2020 03:54 Inactive
@ijjk
Copy link
Member Author

ijjk commented Nov 15, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 13.5s 13.2s -354ms
nodeModulesSize 85 MB 85 MB ⚠️ +4.36 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
/ failed reqs 0 0
/ total time (seconds) 2.343 2.45 ⚠️ +0.11
/ avg req/sec 1067.02 1020.27 ⚠️ -46.75
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.26 1.324 ⚠️ +0.06
/error-in-render avg req/sec 1984.1 1888.82 ⚠️ -95.28
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB 12.7 kB ⚠️ +28 B
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB 8.26 kB ⚠️ +30 B
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
index.html gzip 968 B 966 B -2 B
link.html gzip 975 B 974 B -1 B
withRouter.html gzip 962 B 960 B -2 B
Overall change 2.9 kB 2.9 kB -5 B

Diffs

Diff for 677f882d2ed8..a6.module.js
@@ -437,7 +437,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for 677f882d2ed8..8c8c6127b.js
@@ -477,7 +477,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 15.3s 14.9s -415ms
nodeModulesSize 85 MB 85 MB ⚠️ +4.36 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..776c.js gzip N/A 12.7 kB N/A
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 8.26 kB N/A
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_error.js 918 kB 918 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB
link.js 976 kB 976 kB ⚠️ +164 B
routerDirect.js 969 kB 969 kB ⚠️ +164 B
withRouter.js 969 kB 969 kB ⚠️ +164 B
Overall change 4.76 MB 4.76 MB ⚠️ +492 B
Commit: 0244783

@ijjk

This comment has been minimized.

@vercel vercel bot temporarily deployed to Preview November 15, 2020 04:57 Inactive
@vercel vercel bot temporarily deployed to Preview November 15, 2020 05:05 Inactive
@ijjk
Copy link
Member Author

ijjk commented Nov 15, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 11.2s 11s -144ms
nodeModulesSize 85 MB 85 MB ⚠️ +4.36 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
/ failed reqs 0 0
/ total time (seconds) 2.062 2.075 ⚠️ +0.01
/ avg req/sec 1212.41 1204.77 ⚠️ -7.64
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.102 1.119 ⚠️ +0.02
/error-in-render avg req/sec 2268.96 2234.11 ⚠️ -34.85
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB 12.7 kB ⚠️ +28 B
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB 8.26 kB ⚠️ +30 B
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Rendered Page Sizes Overall decrease ✓
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
index.html gzip 968 B 966 B -2 B
link.html gzip 975 B 974 B -1 B
withRouter.html gzip 962 B 960 B -2 B
Overall change 2.9 kB 2.9 kB -5 B

Diffs

Diff for 677f882d2ed8..a6.module.js
@@ -437,7 +437,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for 677f882d2ed8..8c8c6127b.js
@@ -477,7 +477,12 @@
       function hasPrefetch(link) {
         try {
           link = document.createElement("link");
-          return link.relList.supports("prefetch");
+          return (
+            // detect IE11 since it supports prefetch but isn't detected
+            // with relList.support
+            (!!window.MSInputMethodContext && !!document.documentMode) ||
+            link.relList.supports("prefetch")
+          );
         } catch (_unused) {
           return false;
         }
Diff for index.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for link.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -123,13 +123,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
Diff for withRouter.html
@@ -25,7 +25,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      href="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -118,13 +118,13 @@
       type="module"
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9729a1323ef8c8c6127b.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.c11e52639d6f9ffa2701.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script>
     <script
-      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.8820a560590f533604a6.module.js"
+      src="/_next/static/chunks/677f882d2ed86fa3467b8979053c1a4c3f8bc4df.9d3c1b141d687e5765f4.module.js"
       async=""
       crossorigin="anonymous"
       type="module"

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
buildDuration 14.3s 12.8s -1.5s
nodeModulesSize 85 MB 85 MB ⚠️ +4.36 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..d9fb.js gzip 12.7 kB N/A N/A
framework.HASH.js gzip 39 kB 39 kB
main-6b336ff..ab65.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
677f882d2ed8..776c.js gzip N/A 12.7 kB N/A
Overall change 58.9 kB 58.9 kB ⚠️ +28 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
677f882d2ed8..dule.js gzip 8.23 kB N/A N/A
framework.HA..dule.js gzip 39 kB 39 kB
main-878859a..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
677f882d2ed8..dule.js gzip N/A 8.26 kB N/A
Overall change 53.6 kB 53.6 kB ⚠️ +30 B
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-d9a15a0..130a.js gzip 1.57 kB 1.57 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 7.98 kB 7.98 kB
Client Pages Modern
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-973cce3..dule.js gzip 1.51 kB 1.51 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.6 kB 5.6 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 330 B 330 B
Overall change 651 B 651 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary ijjk/next.js fix/ie11-prefetch Change
_error.js 918 kB 918 kB
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB
link.js 976 kB 976 kB ⚠️ +164 B
routerDirect.js 969 kB 969 kB ⚠️ +164 B
withRouter.js 969 kB 969 kB ⚠️ +164 B
Overall change 4.76 MB 4.76 MB ⚠️ +492 B
Commit: 05c3cd0

@vercel vercel bot temporarily deployed to Preview November 15, 2020 21:17 Inactive
@Timer Timer merged commit 00f8297 into vercel:canary Nov 15, 2020
@Timer Timer deleted the fix/ie11-prefetch branch November 15, 2020 21:18
@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants