WEBVTT

1
00:00:05.195 --> 00:00:07.895
<00:00:05.195>I'm <00:00:05.311>so <00:00:05.428>happy <00:00:05.545>to <00:00:05.661>be <00:00:05.778>here <00:00:05.895>today, <00:00:06.011>uh, <00:00:06.128>to <00:00:06.245>speak <00:00:06.361>to <00:00:06.478>you <00:00:06.595>about

2
00:00:08.075 --> 00:00:10.695
<00:00:08.074>how <00:00:08.274>to <00:00:08.475>build <00:00:08.674>a <00:00:08.875>blazing <00:00:09.075>fast <00:00:09.274>navigation <00:00:09.475>experience

3
00:00:10.695 --> 00:00:12.495
<00:00:10.695>for <00:00:11.161>your <00:00:11.628>users, <00:00:12.095>um,

4
00:00:12.705 --> 00:00:14.335
<00:00:12.705>using <00:00:13.055>something <00:00:13.405>called <00:00:13.754>speculation <00:00:14.105>rules.

5
00:00:14.355 --> 00:00:15.935
<00:00:14.355>So <00:00:14.555>I <00:00:14.755>will <00:00:14.955>start <00:00:15.155>with <00:00:15.355>a <00:00:15.555>few <00:00:15.755>questions.

6
00:00:15.935 --> 00:00:17.095
<00:00:15.935>First <00:00:16.143>of <00:00:16.352>all, <00:00:16.561>I <00:00:16.770>will <00:00:16.979>assume

7
00:00:17.095 --> 00:00:18.735
<00:00:17.095>that <00:00:17.270>everyone <00:00:17.445>in <00:00:17.619>the <00:00:17.794>room <00:00:17.970>is <00:00:18.145>a <00:00:18.320>web <00:00:18.494>developer.

8
00:00:18.755 --> 00:00:22.255
<00:00:18.755>If <00:00:18.895>you're <00:00:19.035>a <00:00:19.174>web <00:00:19.314>developer, <00:00:19.455>can <00:00:19.595>you <00:00:19.735>use <00:00:19.875>your <00:00:20.015>hand? <00:00:20.154>Awesome.

9
00:00:22.435 --> 00:00:25.095
<00:00:22.435>That's <00:00:22.562>just <00:00:22.689>a <00:00:22.816>sanity <00:00:22.944>check <00:00:23.071>that <00:00:23.198>you <00:00:23.325>are <00:00:23.453>in <00:00:23.580>the <00:00:23.707>right <00:00:23.834>place

10
00:00:25.115 --> 00:00:26.215
<00:00:25.115>and <00:00:25.279>I <00:00:25.445>am <00:00:25.610>in <00:00:25.775>the <00:00:25.940>right <00:00:26.105>place.

11
00:00:26.885 --> 00:00:29.215
<00:00:26.885>Another <00:00:27.118>question, <00:00:27.351>anyone <00:00:27.585>in <00:00:27.818>the <00:00:28.051>room <00:00:28.285>is

12
00:00:29.245 --> 00:00:30.735
<00:00:29.245>performance <00:00:30.586>enthusiast?

13
00:00:32.795 --> 00:00:35.425
<00:00:32.795>Great, <00:00:32.995>you <00:00:33.195>are <00:00:33.395>in <00:00:33.595>the <00:00:33.795>exact <00:00:33.995>same <00:00:34.195>place.

14
00:00:35.775 --> 00:00:36.905
<00:00:35.775>Okay, <00:00:36.283>final <00:00:36.792>question.

15
00:00:37.045 --> 00:00:39.025
<00:00:37.045>Any <00:00:37.220>of <00:00:37.395>you <00:00:37.570>is <00:00:37.745>familiar <00:00:37.920>with <00:00:38.095>the <00:00:38.270>speculation <00:00:38.445>rules?

16
00:00:40.855 --> 00:00:42.985
<00:00:40.855>Okay, <00:00:41.055>very <00:00:41.254>few, <00:00:41.455>but <00:00:41.654>I <00:00:41.855>can <00:00:42.055>promise <00:00:42.254>that

17
00:00:42.985 --> 00:00:44.665
<00:00:42.985>after <00:00:43.185>this <00:00:43.385>talk <00:00:43.585>you're <00:00:43.785>going <00:00:43.985>to <00:00:44.185>walk <00:00:44.385>away

18
00:00:44.665 --> 00:00:45.985
<00:00:44.665>with <00:00:45.061>very <00:00:45.457>actionable <00:00:45.853>items

19
00:00:46.335 --> 00:00:48.985
<00:00:46.335>that <00:00:46.535>you <00:00:46.735>can <00:00:46.935>apply <00:00:47.135>today <00:00:47.335>to <00:00:47.535>your <00:00:47.735>project.

20
00:00:49.545 --> 00:00:50.945
<00:00:49.545>I <00:00:49.725>would <00:00:49.905>say <00:00:50.085>you <00:00:50.265>are <00:00:50.445>attending <00:00:50.625>the <00:00:50.805>conference,

21
00:00:50.945 --> 00:00:53.985
<00:00:50.945>so <00:00:51.085>on <00:00:51.225>Monday <00:00:51.365>you <00:00:51.505>can <00:00:51.645>apply <00:00:51.785>everything <00:00:51.925>that <00:00:52.065>you, <00:00:52.205>you're <00:00:52.345>going

22
00:00:53.985 --> 00:00:55.025
<00:00:53.985>to <00:00:54.219>learn <00:00:54.452>from <00:00:54.687>me <00:00:54.921>today.

23
00:00:55.925 --> 00:00:59.025
<00:00:55.925>Um, <00:00:56.125>I <00:00:56.324>would <00:00:56.525>start <00:00:56.724>with <00:00:56.925>a <00:00:57.125>small <00:00:57.324>story.

24
00:01:00.265 --> 00:01:03.025
<00:01:00.265>I <00:01:00.440>believe <00:01:00.615>at <00:01:00.790>some <00:01:00.965>point <00:01:01.140>you <00:01:01.315>had <00:01:01.490>this <00:01:01.665>cheap

25
00:01:03.475 --> 00:01:05.225
<00:01:03.475>smartphone <00:01:03.825>in <00:01:04.175>your <00:01:04.525>hand, <00:01:04.875>right?

26
00:01:06.365 --> 00:01:08.225
<00:01:06.365>So <00:01:06.539>if <00:01:06.714>you <00:01:06.890>have <00:01:07.065>one <00:01:07.240>at <00:01:07.414>home <00:01:07.589>right <00:01:07.765>now

27
00:01:08.525 --> 00:01:10.825
<00:01:08.525>and <00:01:08.700>you <00:01:08.875>open <00:01:09.050>both <00:01:09.225>of <00:01:09.400>them <00:01:09.575>side <00:01:09.750>by <00:01:09.925>side

28
00:01:11.245 --> 00:01:15.185
<00:01:11.245>and <00:01:11.400>you <00:01:11.556>start <00:01:11.711>running <00:01:11.867>on <00:01:12.022>them <00:01:12.178>Chrome <00:01:12.333>from <00:01:12.489>version <00:01:12.645>one

29
00:01:15.245 --> 00:01:16.545
<00:01:15.245>or <00:01:15.635>nine <00:01:16.025>or <00:01:16.415>plus

30
00:01:17.285 --> 00:01:20.425
<00:01:17.285>and <00:01:17.485>you <00:01:17.685>decided <00:01:17.884>to <00:01:18.085>open <00:01:18.285>Google <00:01:18.485>search <00:01:18.685>something

31
00:01:20.525 --> 00:01:23.065
<00:01:20.525>and <00:01:20.700>you <00:01:20.875>feel <00:01:21.050>lucky <00:01:21.225>clicked <00:01:21.400>on <00:01:21.575>the <00:01:21.750>first <00:01:21.925>link,

32
00:01:23.675 --> 00:01:25.545
<00:01:23.675>which <00:01:23.875>one <00:01:24.075>do <00:01:24.274>you <00:01:24.475>think <00:01:24.675>would <00:01:24.875>be <00:01:25.075>faster?

33
00:01:27.325 --> 00:01:28.225
<00:01:27.325>Who <00:01:27.595>think <00:01:27.865>that <00:01:28.134>the

34
00:01:28.225 --> 00:01:32.375
<00:01:28.225>iPhone, <00:01:28.574>That <00:01:28.925>makes <00:01:29.274>sense, <00:01:29.625>right?

35
00:01:32.565 --> 00:01:35.775
<00:01:32.565>This <00:01:32.720>one <00:01:32.876>is <00:01:33.031>$300, <00:01:33.187>this <00:01:33.342>one <00:01:33.498>is <00:01:33.653>1600 <00:01:33.809>plus <00:01:33.965>dollars.

36
00:01:35.915 --> 00:01:37.615
<00:01:35.914>So <00:01:36.264>that <00:01:36.615>makes <00:01:36.964>sense, <00:01:37.315>right?

37
00:01:37.955 --> 00:01:39.455
<00:01:37.955>But <00:01:38.225>I'm <00:01:38.495>going <00:01:38.765>to <00:01:39.035>disappoint <00:01:39.304>you

38
00:01:39.485 --> 00:01:41.775
<00:01:39.485>that <00:01:39.640>actually <00:01:39.796>this <00:01:39.951>one <00:01:40.107>is <00:01:40.262>going <00:01:40.418>to <00:01:40.573>be <00:01:40.729>the <00:01:40.885>winner

39
00:01:42.395 --> 00:01:43.775
<00:01:42.395>that's <00:01:42.705>due <00:01:43.016>to <00:01:43.326>two <00:01:43.637>things.

40
00:01:44.305 --> 00:01:47.415
<00:01:44.305>First <00:01:44.480>one <00:01:44.655>is <00:01:44.830>our <00:01:45.005>topic <00:01:45.180>of <00:01:45.355>today <00:01:45.530>speculation <00:01:45.705>rules.

41
00:01:47.475 --> 00:01:51.295
<00:01:47.475>Google <00:01:47.630>search <00:01:47.786>has <00:01:47.941>been <00:01:48.097>using <00:01:48.252>speculation <00:01:48.408>rules <00:01:48.563>for <00:01:48.719>long <00:01:48.875>time

42
00:01:51.315 --> 00:01:52.815
<00:01:51.315>before <00:01:51.765>being, <00:01:52.215>uh, <00:01:52.664>available

43
00:01:52.815 --> 00:01:54.055
<00:01:52.815>for <00:01:52.974>public <00:01:53.133>people <00:01:53.293>to <00:01:53.452>use <00:01:53.612>it <00:01:53.771>as <00:01:53.931>well.

44
00:01:54.475 --> 00:01:57.175
<00:01:54.475>And <00:01:54.675>this <00:01:54.875>makes <00:01:55.074>it <00:01:55.274>very <00:01:55.475>fast <00:01:55.675>for <00:01:55.875>the,

45
00:01:57.175 --> 00:01:58.615
<00:01:57.175>at <00:01:57.360>least <00:01:57.545>the <00:01:57.730>first <00:01:57.915>page <00:01:58.100>of <00:01:58.285>the <00:01:58.471>search.

46
00:01:59.155 --> 00:02:01.735
<00:01:59.155>And <00:01:59.295>the <00:01:59.435>second <00:01:59.575>one <00:01:59.715>that <00:01:59.855>I <00:01:59.995>believe <00:02:00.135>most <00:02:00.275>of <00:02:00.415>you <00:02:00.555>know,

47
00:02:02.795 --> 00:02:05.895
<00:02:02.795>all <00:02:02.950>browser <00:02:03.106>on <00:02:03.261>iOS <00:02:03.417>are <00:02:03.572>actually <00:02:03.728>running <00:02:03.883>on <00:02:04.039>Web <00:02:04.195>Cat.

48
00:02:06.085 --> 00:02:08.655
<00:02:06.085>They're <00:02:06.318>not <00:02:06.551>really. <00:02:06.785>So <00:02:07.018>this <00:02:07.251>chrome <00:02:07.485>on

49
00:02:09.475 --> 00:02:12.175
<00:02:09.475>on <00:02:09.755>iPhone <00:02:10.035>is <00:02:10.315>actually <00:02:10.595>a <00:02:10.875>safari,

50
00:02:12.315 --> 00:02:14.495
<00:02:12.315>but <00:02:12.515>it's <00:02:12.715>just <00:02:12.915>in <00:02:13.115>the <00:02:13.315>skin <00:02:13.515>of <00:02:13.715>Chrome.

51
00:02:14.715 --> 00:02:16.935
<00:02:14.715>That's <00:02:14.915>due <00:02:15.115>to <00:02:15.315>a <00:02:15.515>monopoly <00:02:15.715>in <00:02:15.915>the <00:02:16.115>browser

52
00:02:17.035 --> 00:02:18.855
<00:02:17.035>and <00:02:17.210>there <00:02:17.385>is <00:02:17.560>a <00:02:17.734>big <00:02:17.910>case <00:02:18.085>that <00:02:18.260>people <00:02:18.435>are,

53
00:02:18.995 --> 00:02:20.055
<00:02:18.995>you <00:02:19.233>know, <00:02:19.472>suffering <00:02:19.710>from <00:02:19.949>that.

54
00:02:21.115 --> 00:02:24.935
<00:02:21.115>So <00:02:21.348>without <00:02:21.581>further <00:02:21.815>ado, <00:02:22.048>let <00:02:22.281>introduce <00:02:22.515>myself.

55
00:02:24.995 --> 00:02:26.135
<00:02:24.995>My <00:02:25.337>name <00:02:25.679>is <00:02:26.021>ud.

56
00:02:26.315 --> 00:02:29.295
<00:02:26.315>Uh, <00:02:26.470>I <00:02:26.626>am <00:02:26.781>a <00:02:26.937>senior <00:02:27.092>software <00:02:27.248>engineer <00:02:27.403>working <00:02:27.559>for <00:02:27.715>Miro.

57
00:02:29.315 --> 00:02:32.615
<00:02:29.315>I'm <00:02:29.470>also <00:02:29.626>a <00:02:29.781>Google <00:02:29.937>verbal <00:02:30.092>expert <00:02:30.248>in <00:02:30.403>uh, <00:02:30.559>web <00:02:30.715>performance.

58
00:02:33.115 --> 00:02:34.495
<00:02:33.115>Uh, <00:02:33.292>if <00:02:33.469>you <00:02:33.647>like <00:02:33.824>what <00:02:34.002>you <00:02:34.179>see <00:02:34.357>today,

59
00:02:34.495 --> 00:02:36.975
<00:02:34.495>you <00:02:34.635>can <00:02:34.775>follow <00:02:34.915>me <00:02:35.055>on <00:02:35.195>this <00:02:35.335>handle <00:02:35.475>on <00:02:35.615>Twitter <00:02:35.755>or <00:02:35.895>X

60
00:02:37.115 --> 00:02:38.215
<00:02:37.115>or <00:02:37.445>find <00:02:37.775>more <00:02:38.105>information

61
00:02:38.215 --> 00:02:41.535
<00:02:38.215>and <00:02:38.390>more <00:02:38.565>contents <00:02:38.740>about <00:02:38.915>performance <00:02:39.090>on <00:02:39.265>on <00:02:39.440>my <00:02:39.615>website.

62
00:02:42.205 --> 00:02:45.615
<00:02:42.204>Okay, <00:02:42.344>let's <00:02:42.484>move <00:02:42.624>on. <00:02:42.765>Starting <00:02:42.904>from <00:02:43.045>cases <00:02:43.184>that <00:02:43.325>you <00:02:43.464>have, <00:02:43.605>uh,

63
00:02:45.645 --> 00:02:47.975
<00:02:45.645>different <00:02:45.925>loading <00:02:46.205>performance <00:02:46.485>for <00:02:46.765>the <00:02:47.045>page.

64
00:02:48.945 --> 00:02:50.575
<00:02:48.945>Every <00:02:49.411>case <00:02:49.878>is <00:02:50.345>different.

65
00:02:50.915 --> 00:02:52.575
<00:02:50.915>So <00:02:51.148>if <00:02:51.381>you <00:02:51.614>are <00:02:51.848>loading <00:02:52.081>a <00:02:52.315>page

66
00:02:52.835 --> 00:02:54.815
<00:02:52.835>and <00:02:53.068>you're <00:02:53.301>debugging <00:02:53.535>what's <00:02:53.768>wrong <00:02:54.001>with <00:02:54.235>performance,

67
00:02:54.815 --> 00:02:55.935
<00:02:54.815>you <00:02:54.983>have <00:02:55.151>to <00:02:55.319>decide <00:02:55.487>which <00:02:55.655>it <00:02:55.823>is.

68
00:02:55.945 --> 00:02:57.615
<00:02:55.945>First <00:02:56.225>of <00:02:56.505>all, <00:02:56.785>is <00:02:57.065>it <00:02:57.345>loading

69
00:02:57.615 --> 00:02:58.735
<00:02:57.615>for <00:02:57.783>the <00:02:57.951>first <00:02:58.119>time <00:02:58.287>from <00:02:58.455>the <00:02:58.623>server?

70
00:02:59.355 --> 00:03:02.765
<00:02:59.355>Okay, <00:02:59.494>is <00:02:59.635>it <00:02:59.774>loading <00:02:59.915>from <00:03:00.054>the <00:03:00.195>cache? <00:03:00.334>Different <00:03:00.475>type <00:03:00.614>of <00:03:00.755>cache?

71
00:03:03.145 --> 00:03:04.525
<00:03:03.145>And <00:03:03.322>if <00:03:03.499>it's <00:03:03.677>loading <00:03:03.854>for <00:03:04.032>the <00:03:04.209>first <00:03:04.387>time,

72
00:03:04.525 --> 00:03:05.805
<00:03:04.525>there's <00:03:04.813>different <00:03:05.101>types <00:03:05.389>as <00:03:05.677>well.

73
00:03:05.805 --> 00:03:08.725
<00:03:05.805>Underneath <00:03:05.980>it <00:03:06.155>is <00:03:06.330>it <00:03:06.505>loading <00:03:06.680>as <00:03:06.855>a <00:03:07.030>landing <00:03:07.205>page?

74
00:03:08.785 --> 00:03:11.365
<00:03:08.785>So <00:03:08.984>you <00:03:09.185>search <00:03:09.385>in <00:03:09.585>Google <00:03:09.785>or <00:03:09.984>search <00:03:10.185>engine

75
00:03:11.365 --> 00:03:13.005
<00:03:11.365>and <00:03:11.565>you <00:03:11.765>decide <00:03:11.965>to <00:03:12.165>go <00:03:12.365>with <00:03:12.565>a <00:03:12.765>link

76
00:03:13.265 --> 00:03:16.725
<00:03:13.265>or <00:03:13.404>you're <00:03:13.545>writing <00:03:13.684>the <00:03:13.825>URL, <00:03:13.964>that's <00:03:14.105>also <00:03:14.244>like <00:03:14.385>a <00:03:14.524>landing <00:03:14.665>page

77
00:03:17.225 --> 00:03:19.765
<00:03:17.225>or <00:03:17.400>you <00:03:17.575>are <00:03:17.750>navigating <00:03:17.924>to <00:03:18.100>it <00:03:18.275>from <00:03:18.450>one <00:03:18.625>page,

78
00:03:19.765 --> 00:03:21.045
<00:03:19.765>you're <00:03:20.053>navigating <00:03:20.341>to <00:03:20.629>another <00:03:20.917>page.

79
00:03:21.585 --> 00:03:24.845
<00:03:21.585>And <00:03:21.701>this <00:03:21.818>one <00:03:21.935>is <00:03:22.051>the <00:03:22.168>one <00:03:22.285>that <00:03:22.401>I'm <00:03:22.518>going <00:03:22.635>to <00:03:22.751>focus <00:03:22.868>on <00:03:22.985>today.

80
00:03:24.845 --> 00:03:27.565
<00:03:24.845>So <00:03:24.984>the <00:03:25.125>first <00:03:25.265>loading <00:03:25.405>of <00:03:25.545>the <00:03:25.685>page <00:03:25.825>has <00:03:25.965>totally <00:03:26.105>different <00:03:26.245>ways

81
00:03:27.665 --> 00:03:29.685
<00:03:27.665>of <00:03:27.945>optimization, <00:03:28.225>not <00:03:28.505>really <00:03:28.785>the <00:03:29.065>one

82
00:03:29.685 --> 00:03:30.885
<00:03:29.685>that <00:03:29.865>we're <00:03:30.045>going <00:03:30.225>to <00:03:30.405>talk <00:03:30.584>about <00:03:30.765>today.

83
00:03:32.025 --> 00:03:34.125
<00:03:32.025>So <00:03:32.305>let's <00:03:32.585>go <00:03:32.865>back <00:03:33.145>to <00:03:33.425>primitive.

84
00:03:34.605 --> 00:03:36.645
<00:03:34.605>I <00:03:34.780>will <00:03:34.954>just <00:03:35.130>go <00:03:35.304>very <00:03:35.480>easy <00:03:35.655>in <00:03:35.829>this <00:03:36.005>one

85
00:03:36.905 --> 00:03:38.285
<00:03:36.905>how <00:03:37.153>we <00:03:37.401>are <00:03:37.650>loading <00:03:37.898>a <00:03:38.147>page.

86
00:03:38.345 --> 00:03:40.485
<00:03:38.345>You <00:03:38.578>are <00:03:38.811>requesting, <00:03:39.045>for <00:03:39.278>example, <00:03:39.511>index <00:03:39.745>html.

87
00:03:40.745 --> 00:03:42.045
<00:03:40.745>How <00:03:40.940>this <00:03:41.135>is <00:03:41.330>going. <00:03:41.525>First <00:03:41.720>of <00:03:41.915>all,

88
00:03:42.225 --> 00:03:45.405
<00:03:42.225>you <00:03:42.352>are <00:03:42.479>requesting <00:03:42.606>from <00:03:42.734>the <00:03:42.861>client <00:03:42.988>or <00:03:43.115>a <00:03:43.243>server <00:03:43.370>index, <00:03:43.497>H <00:03:43.625>ml

89
00:03:45.785 --> 00:03:48.205
<00:03:45.785>and <00:03:45.960>wait <00:03:46.135>for <00:03:46.310>the <00:03:46.484>index <00:03:46.660>HTML <00:03:46.835>to <00:03:47.010>come <00:03:47.185>easy.

90
00:03:48.205 --> 00:03:51.245
<00:03:48.204>Right? <00:03:48.484>Afterwards <00:03:48.765>you're <00:03:49.045>passing <00:03:49.325>H <00:03:49.605>tml,

91
00:03:51.245 --> 00:03:53.645
<00:03:51.245>you <00:03:51.400>find <00:03:51.556>out <00:03:51.711>there <00:03:51.867>is <00:03:52.022>some <00:03:52.178>assets, <00:03:52.333>there's <00:03:52.489>some <00:03:52.645>scripts,

92
00:03:53.675 --> 00:03:55.085
<00:03:53.675>some <00:03:53.886>stuff <00:03:54.098>that <00:03:54.309>you <00:03:54.521>need <00:03:54.732>to <00:03:54.944>run.

93
00:03:55.465 --> 00:03:58.245
<00:03:55.465>So <00:03:55.620>you <00:03:55.776>request <00:03:55.931>them <00:03:56.087>and <00:03:56.242>wait <00:03:56.398>for <00:03:56.553>them <00:03:56.709>to <00:03:56.865>come.

94
00:03:58.665 --> 00:04:02.045
<00:03:58.665>All <00:03:58.804>this <00:03:58.945>time <00:03:59.084>the <00:03:59.225>user <00:03:59.364>is <00:03:59.505>having <00:03:59.644>this <00:03:59.785>looter <00:03:59.924>happening <00:04:00.065>right

95
00:04:03.135 --> 00:04:06.245
<00:04:03.135>afterwards <00:04:03.334>you <00:04:03.535>start <00:04:03.734>printing <00:04:03.935>after <00:04:04.135>everything <00:04:04.334>is <00:04:04.535>looted

96
00:04:06.385 --> 00:04:08.165
<00:04:06.385>and <00:04:06.618>voila, <00:04:06.851>you <00:04:07.084>have <00:04:07.318>a <00:04:07.551>page, <00:04:07.785>right?

97
00:04:08.915 --> 00:04:12.455
<00:04:08.915>This <00:04:09.090>might <00:04:09.265>take <00:04:09.440>like <00:04:09.614>an <00:04:09.790>average <00:04:09.965>three <00:04:10.140>seconds, <00:04:10.315>more

98
00:04:12.555 --> 00:04:14.215
<00:04:12.555>or <00:04:12.788>less <00:04:13.021>if <00:04:13.255>it's <00:04:13.488>a <00:04:13.721>good <00:04:13.955>page.

99
00:04:15.475 --> 00:04:17.695
<00:04:15.475>And <00:04:15.650>if <00:04:15.825>you <00:04:16.000>decided <00:04:16.175>to <00:04:16.350>click <00:04:16.524>on <00:04:16.700>P <00:04:16.875>one,

100
00:04:17.695 --> 00:04:18.735
<00:04:17.695>imagine <00:04:18.007>what <00:04:18.319>would <00:04:18.631>happen.

101
00:04:19.795 --> 00:04:21.935
<00:04:19.795>Yes, <00:04:20.075>you <00:04:20.355>guess <00:04:20.635>might <00:04:20.915>get <00:04:21.195>right.

102
00:04:22.915 --> 00:04:24.615
<00:04:22.915>It <00:04:23.195>starts <00:04:23.475>over <00:04:23.755>the <00:04:24.035>same <00:04:24.315>process.

103
00:04:24.845 --> 00:04:29.775
<00:04:24.845>Request <00:04:24.985>H <00:04:25.125>tml <00:04:25.265>towards <00:04:25.405>uh, <00:04:25.545>it <00:04:25.685>starts <00:04:25.825>parsing <00:04:25.965>it, <00:04:26.105>finding <00:04:26.245>it,

104
00:04:30.075 --> 00:04:33.375
<00:04:30.075>and <00:04:30.230>then <00:04:30.386>waiting <00:04:30.541>for <00:04:30.697>the <00:04:30.852>assets <00:04:31.008>and <00:04:31.163>finally <00:04:31.319>rendering <00:04:31.474>it.

105
00:04:33.675 --> 00:04:37.335
<00:04:33.675>And <00:04:33.791>you <00:04:33.908>have <00:04:34.025>the <00:04:34.141>page, <00:04:34.258>imagine <00:04:34.375>P <00:04:34.491>two, <00:04:34.608>P <00:04:34.725>three <00:04:34.841>and <00:04:34.958>so <00:04:35.075>on.

106
00:04:37.445 --> 00:04:38.775
<00:04:37.445>This <00:04:37.744>might <00:04:38.043>take <00:04:38.342>slightly <00:04:38.642>less

107
00:04:38.775 --> 00:04:40.375
<00:04:38.775>because <00:04:39.054>the <00:04:39.335>assets <00:04:39.614>has <00:04:39.895>been <00:04:40.174>loaded

108
00:04:40.435 --> 00:04:42.335
<00:04:40.435>and <00:04:40.635>some <00:04:40.835>of <00:04:41.035>them <00:04:41.235>has <00:04:41.435>been <00:04:41.635>cached <00:04:41.835>fine.

109
00:04:42.675 --> 00:04:46.095
<00:04:42.675>And <00:04:42.802>this <00:04:42.929>time <00:04:43.056>that <00:04:43.184>the <00:04:43.311>user <00:04:43.438>is <00:04:43.565>having <00:04:43.693>is <00:04:43.820>this <00:04:43.947>loading <00:04:44.075>is

110
00:04:46.095 --> 00:04:50.255
<00:04:46.095>mostly <00:04:46.270>due <00:04:46.445>to <00:04:46.620>network <00:04:46.795>and <00:04:46.970>rendering <00:04:47.145>time <00:04:47.320>till <00:04:47.495>now.

111
00:04:50.435 --> 00:04:51.495
<00:04:50.435>That's <00:04:51.389>primitives.

112
00:04:51.495 --> 00:04:53.135
<00:04:51.495>That's <00:04:51.728>something <00:04:51.961>that <00:04:52.195>I <00:04:52.428>think <00:04:52.661>everyone <00:04:52.895>knows.

113
00:04:54.515 --> 00:04:56.335
<00:04:54.515>So <00:04:54.715>can <00:04:54.914>we <00:04:55.115>do <00:04:55.315>better <00:04:55.515>in <00:04:55.715>this <00:04:55.914>one?

114
00:04:58.135 --> 00:05:01.695
<00:04:58.135>I <00:04:58.262>will <00:04:58.389>start <00:04:58.516>with <00:04:58.644>a <00:04:58.771>fun <00:04:58.898>fact <00:04:59.025>that <00:04:59.153>we <00:04:59.280>humans <00:04:59.407>are <00:04:59.534>slow

115
00:05:01.795 --> 00:05:03.775
<00:05:01.795>and <00:05:02.028>impatient <00:05:02.261>species <00:05:02.495>in <00:05:02.728>the <00:05:02.961>same <00:05:03.195>time.

116
00:05:03.875 --> 00:05:06.415
<00:05:03.875>And <00:05:04.015>I <00:05:04.155>will <00:05:04.295>prove <00:05:04.435>it <00:05:04.575>to <00:05:04.715>you. <00:05:04.855>Impatient <00:05:04.995>in <00:05:05.135>the <00:05:05.275>sense

117
00:05:06.445 --> 00:05:09.815
<00:05:06.445>that <00:05:06.645>over <00:05:06.844>the <00:05:07.045>years <00:05:07.245>in <00:05:07.445>1999 <00:05:07.645>for <00:05:07.844>example,

118
00:05:10.385 --> 00:05:12.615
<00:05:10.385>eight <00:05:10.585>seconds <00:05:10.784>was <00:05:10.985>perceived <00:05:11.185>as <00:05:11.385>a <00:05:11.585>good <00:05:11.784>timing

119
00:05:12.715 --> 00:05:14.735
<00:05:12.715>for <00:05:12.870>loading <00:05:13.026>a <00:05:13.181>page <00:05:13.337>due <00:05:13.492>to <00:05:13.648>a <00:05:13.803>lot <00:05:13.959>of <00:05:14.114>things.

120
00:05:14.795 --> 00:05:17.335
<00:05:14.795>But <00:05:14.935>that <00:05:15.075>was <00:05:15.215>perceived <00:05:15.355>as <00:05:15.495>this <00:05:15.635>is <00:05:15.775>a <00:05:15.915>good <00:05:16.055>loading <00:05:16.195>time

121
00:05:18.045 --> 00:05:19.255
<00:05:18.045>only <00:05:18.408>seven <00:05:18.771>years <00:05:19.134>later.

122
00:05:19.475 --> 00:05:22.815
<00:05:19.475>It <00:05:19.630>comes <00:05:19.786>with <00:05:19.941>half <00:05:20.097>the <00:05:20.252>time, <00:05:20.408>four <00:05:20.563>seconds <00:05:20.719>is <00:05:20.875>accepted

123
00:05:22.875 --> 00:05:27.415
<00:05:22.875>as <00:05:23.030>fast <00:05:23.186>and <00:05:23.341>with <00:05:23.497>acceptance <00:05:23.652>of <00:05:23.808>fast <00:05:23.963>means <00:05:24.119>that <00:05:24.275>anything

124
00:05:27.505 --> 00:05:30.375
<00:05:27.505>above <00:05:27.660>that <00:05:27.816>is <00:05:27.971>perceived <00:05:28.127>as <00:05:28.282>slew <00:05:28.438>doesn't <00:05:28.593>load <00:05:28.749>that <00:05:28.905>fast.

125
00:05:31.335 --> 00:05:35.375
<00:05:31.335>Nowadays <00:05:31.474>it's <00:05:31.614>only <00:05:31.755>two <00:05:31.895>seconds <00:05:32.034>and <00:05:32.174>maybe <00:05:32.315>less <00:05:32.455>with <00:05:32.594>the <00:05:32.734>reels

126
00:05:35.375 --> 00:05:36.895
<00:05:35.375>and <00:05:35.648>things <00:05:35.922>that <00:05:36.195>you <00:05:36.469>are <00:05:36.743>scrolling.

127
00:05:36.895 --> 00:05:39.415
<00:05:36.895>If <00:05:37.022>it <00:05:37.149>takes <00:05:37.276>too <00:05:37.404>long, <00:05:37.531>you <00:05:37.658>feel <00:05:37.785>that <00:05:37.913>this <00:05:38.040>is <00:05:38.167>slew <00:05:38.294>somehow.

128
00:05:39.795 --> 00:05:42.575
<00:05:39.795>So <00:05:39.922>we <00:05:40.049>are <00:05:40.176>impatient, <00:05:40.304>we <00:05:40.431>need <00:05:40.558>everything <00:05:40.685>and <00:05:40.813>we <00:05:40.940>need <00:05:41.067>it <00:05:41.195>now.

129
00:05:44.195 --> 00:05:45.535
<00:05:44.195>And <00:05:44.496>this <00:05:44.798>situation <00:05:45.099>might <00:05:45.400>be

130
00:05:45.735 --> 00:05:46.815
<00:05:45.735>familiar <00:05:45.929>for <00:05:46.123>people <00:05:46.318>who <00:05:46.512>are <00:05:46.707>driving.

131
00:05:47.575 --> 00:05:49.915
<00:05:47.575>If <00:05:47.730>you <00:05:47.886>are <00:05:48.041>driving <00:05:48.197>and <00:05:48.352>you <00:05:48.508>find <00:05:48.663>any <00:05:48.819>hazard <00:05:48.974>situation,

132
00:05:50.365 --> 00:05:52.075
<00:05:50.365>there <00:05:50.645>is <00:05:50.925>something <00:05:51.205>called <00:05:51.485>stopping <00:05:51.765>distance.

133
00:05:52.375 --> 00:05:55.995
<00:05:52.375>The <00:05:52.515>time <00:05:52.655>it <00:05:52.795>takes <00:05:52.935>for <00:05:53.075>the <00:05:53.215>car <00:05:53.355>to <00:05:53.495>be <00:05:53.635>standstill, <00:05:53.775>right?

134
00:05:56.455 --> 00:05:58.165
<00:05:56.455>And <00:05:56.655>this <00:05:56.854>is <00:05:57.055>split <00:05:57.255>it <00:05:57.455>in <00:05:57.655>two <00:05:57.854>halves.

135
00:05:58.415 --> 00:06:00.965
<00:05:58.415>First <00:05:58.590>one <00:05:58.765>is <00:05:58.940>braking <00:05:59.115>after <00:05:59.290>you <00:05:59.465>apply <00:05:59.640>the <00:05:59.815>brake.

136
00:06:01.345 --> 00:06:03.125
<00:06:01.345>And <00:06:01.695>the <00:06:02.045>first <00:06:02.395>one <00:06:02.745>is,

137
00:06:03.225 --> 00:06:06.005
<00:06:03.225>the <00:06:03.425>most <00:06:03.625>important <00:06:03.825>one <00:06:04.025>is <00:06:04.225>the <00:06:04.425>reaction <00:06:04.625>distance.

138
00:06:06.005 --> 00:06:10.725
<00:06:06.005>This <00:06:06.132>is <00:06:06.259>the <00:06:06.386>time <00:06:06.514>the <00:06:06.641>car <00:06:06.768>takes <00:06:06.895>before <00:06:07.023>you <00:06:07.150>apply <00:06:07.277>the <00:06:07.405>brakes

139
00:06:11.025 --> 00:06:12.525
<00:06:11.025>and <00:06:11.294>then <00:06:11.565>you <00:06:11.835>get <00:06:12.104>the <00:06:12.375>action.

140
00:06:13.155 --> 00:06:15.365
<00:06:13.155>This <00:06:13.505>is <00:06:13.854>about <00:06:14.205>one <00:06:14.554>second.

141
00:06:16.025 --> 00:06:18.725
<00:06:16.025>In <00:06:16.200>a <00:06:16.375>hazard <00:06:16.549>situation, <00:06:16.724>someone <00:06:16.900>is <00:06:17.075>gonna <00:06:17.250>die, <00:06:17.424>right?

142
00:06:19.705 --> 00:06:23.325
<00:06:19.705>But <00:06:19.832>you <00:06:19.959>would <00:06:20.086>be <00:06:20.214>surprised <00:06:20.341>the <00:06:20.468>time <00:06:20.595>to <00:06:20.723>click <00:06:20.850>when <00:06:20.977>you <00:06:21.104>decide

143
00:06:23.325 --> 00:06:25.685
<00:06:23.325>to <00:06:23.465>click <00:06:23.604>on <00:06:23.745>some <00:06:23.885>link <00:06:24.025>takes <00:06:24.164>between <00:06:24.305>one <00:06:24.445>to <00:06:24.585>two <00:06:24.724>seconds.

144
00:06:26.395 --> 00:06:28.485
<00:06:26.395>Okay? <00:06:26.594>And <00:06:26.794>this <00:06:26.995>is <00:06:27.195>happening <00:06:27.395>under <00:06:27.594>no <00:06:27.794>stress,

145
00:06:28.865 --> 00:06:32.085
<00:06:28.865>no <00:06:28.992>one <00:06:29.119>is <00:06:29.246>gonna <00:06:29.374>die, <00:06:29.501>takes <00:06:29.628>you <00:06:29.755>are <00:06:29.883>relaxed, <00:06:30.010>you <00:06:30.137>are <00:06:30.265>clicking

146
00:06:32.185 --> 00:06:34.165
<00:06:32.185>and <00:06:32.465>this <00:06:32.745>is <00:06:33.025>counted <00:06:33.305>in <00:06:33.585>seconds.

147
00:06:34.705 --> 00:06:36.445
<00:06:34.705>And <00:06:34.984>this <00:06:35.265>is <00:06:35.544>not <00:06:35.825>tough <00:06:36.104>situation.

148
00:06:36.445 --> 00:06:39.245
<00:06:36.445>Maybe <00:06:36.585>in <00:06:36.724>situation <00:06:36.865>like <00:06:37.005>this <00:06:37.145>one <00:06:37.284>you <00:06:37.425>might <00:06:37.565>take <00:06:37.705>like <00:06:37.844>10

149
00:06:39.245 --> 00:06:42.125
<00:06:39.245>seconds <00:06:39.400>'cause <00:06:39.556>clicking <00:06:39.711>in <00:06:39.867>the <00:06:40.022>wrong <00:06:40.178>length <00:06:40.333>might <00:06:40.489>cost <00:06:40.645>more.

150
00:06:43.785 --> 00:06:46.365
<00:06:43.784>So <00:06:44.018>performance <00:06:44.251>in <00:06:44.484>the <00:06:44.718>other <00:06:44.951>hand <00:06:45.184>is

151
00:06:46.365 --> 00:06:47.765
<00:06:46.365>being <00:06:46.785>measured <00:06:47.205>with <00:06:47.625>milliseconds.

152
00:06:47.875 --> 00:06:51.885
<00:06:47.875>It's <00:06:48.030>not <00:06:48.186>really <00:06:48.341>in <00:06:48.497>seconds. <00:06:48.652>We <00:06:48.808>are <00:06:48.963>slow <00:06:49.119>and <00:06:49.275>impatient,

153
00:06:52.625 --> 00:06:55.805
<00:06:52.625>but <00:06:52.905>performance <00:06:53.185>measure <00:06:53.465>it <00:06:53.745>in <00:06:54.025>milliseconds.

154
00:06:55.805 --> 00:06:58.005
<00:06:55.805>So <00:06:56.155>every <00:06:56.505>millisecond <00:06:56.855>can <00:06:57.205>count.

155
00:06:58.745 --> 00:07:00.645
<00:06:58.745>One <00:06:59.025>second <00:06:59.305>means <00:06:59.585>there's <00:06:59.865>60 <00:07:00.145>frames

156
00:07:00.645 --> 00:07:02.005
<00:07:00.645>for <00:07:00.889>most <00:07:01.134>of <00:07:01.379>the <00:07:01.624>time, <00:07:01.869>right?

157
00:07:02.225 --> 00:07:04.245
<00:07:02.225>For <00:07:02.425>most <00:07:02.625>screens <00:07:02.825>it's <00:07:03.025>60 <00:07:03.225>frame <00:07:03.425>per <00:07:03.625>second.

158
00:07:04.625 --> 00:07:06.605
<00:07:04.625>So <00:07:04.825>every <00:07:05.025>60 <00:07:05.225>millisecond <00:07:05.425>we <00:07:05.625>have <00:07:05.825>a <00:07:06.025>frame.

159
00:07:06.605 --> 00:07:08.205
<00:07:06.605>If <00:07:06.885>you <00:07:07.165>drop <00:07:07.445>like <00:07:07.725>three <00:07:08.005>frames

160
00:07:08.305 --> 00:07:12.205
<00:07:08.305>or <00:07:08.460>more, <00:07:08.616>this <00:07:08.771>is <00:07:08.927>market <00:07:09.082>in <00:07:09.238>your <00:07:09.393>um, <00:07:09.549>main <00:07:09.705>thread

161
00:07:12.265 --> 00:07:13.525
<00:07:12.265>as <00:07:12.643>a <00:07:13.020>long <00:07:13.399>task.

162
00:07:14.075 --> 00:07:18.685
<00:07:14.075>Okay? <00:07:14.308>So <00:07:14.541>could <00:07:14.775>we <00:07:15.008>use <00:07:15.241>the <00:07:15.474>slowness,

163
00:07:19.385 --> 00:07:23.245
<00:07:19.385>our <00:07:19.540>nature <00:07:19.696>of <00:07:19.851>slowness <00:07:20.007>as <00:07:20.162>a <00:07:20.318>feature <00:07:20.473>to <00:07:20.629>help <00:07:20.784>you

164
00:07:23.665 --> 00:07:24.845
<00:07:23.665>as <00:07:24.196>impatient <00:07:24.727>person?

165
00:07:27.365 --> 00:07:30.135
<00:07:27.365>Just <00:07:27.565>think <00:07:27.765>about <00:07:27.965>it <00:07:28.165>now <00:07:28.365>we <00:07:28.565>are <00:07:28.765>slow

166
00:07:30.755 --> 00:07:35.415
<00:07:30.755>and <00:07:30.882>inpatient, <00:07:31.009>so <00:07:31.136>we're <00:07:31.264>going <00:07:31.391>to <00:07:31.518>use <00:07:31.645>beings <00:07:31.773>lu <00:07:31.900>to <00:07:32.027>serve <00:07:32.155>you

167
00:07:35.935 --> 00:07:37.055
<00:07:35.935>a <00:07:36.439>better <00:07:36.943>experience.

168
00:07:39.405 --> 00:07:40.695
<00:07:39.405>Here <00:07:39.792>is <00:07:40.179>the <00:07:40.566>timeline.

169
00:07:40.835 --> 00:07:42.495
<00:07:40.835>If <00:07:41.114>you <00:07:41.395>are <00:07:41.674>having <00:07:41.955>an <00:07:42.234>application

170
00:07:42.495 --> 00:07:45.095
<00:07:42.495>with <00:07:42.670>a <00:07:42.845>few <00:07:43.020>pages <00:07:43.195>like <00:07:43.370>index <00:07:43.545>H, <00:07:43.720>TM <00:07:43.895>L,

171
00:07:45.195 --> 00:07:46.335
<00:07:45.195>and <00:07:45.537>you <00:07:45.878>are <00:07:46.221>going

172
00:07:46.335 --> 00:07:49.975
<00:07:46.335>with <00:07:46.568>some <00:07:46.801>navigation <00:07:47.034>actions <00:07:47.268>without <00:07:47.501>speculation <00:07:47.734>rules,

173
00:07:49.975 --> 00:07:51.415
<00:07:49.975>you <00:07:50.234>do <00:07:50.493>a <00:07:50.752>navigation <00:07:51.011>event <00:07:51.271>here.

174
00:07:51.595 --> 00:07:53.855
<00:07:51.595>So <00:07:51.711>you <00:07:51.828>go <00:07:51.945>to <00:07:52.061>P <00:07:52.178>one, <00:07:52.295>the <00:07:52.411>same <00:07:52.528>thing <00:07:52.645>that <00:07:52.761>I <00:07:52.878>explained <00:07:52.995>earlier.

175
00:07:54.165 --> 00:07:55.415
<00:07:54.165>Another <00:07:54.727>navigation <00:07:55.290>event.

176
00:07:55.415 --> 00:07:57.655
<00:07:55.415>You <00:07:55.570>go <00:07:55.726>to <00:07:55.881>P <00:07:56.037>two, <00:07:56.192>another <00:07:56.348>navigation <00:07:56.503>event, <00:07:56.659>you <00:07:56.815>go

177
00:07:57.655 --> 00:07:59.495
<00:07:57.655>to <00:07:57.854>P <00:07:58.054>three, <00:07:58.255>three <00:07:58.455>pages <00:07:58.655>are <00:07:58.854>being <00:07:59.054>loaded.

178
00:07:59.915 --> 00:08:01.415
<00:07:59.915>So <00:08:00.252>what <00:08:00.590>was <00:08:00.927>speculation <00:08:01.265>rules?

179
00:08:02.135 --> 00:08:04.295
<00:08:02.135>Actually <00:08:02.290>the <00:08:02.446>first <00:08:02.601>load, <00:08:02.757>as <00:08:02.912>I <00:08:03.068>said, <00:08:03.223>is <00:08:03.379>not <00:08:03.534>affected

180
00:08:04.295 --> 00:08:05.695
<00:08:04.295>by <00:08:04.715>speculation <00:08:05.135>rules <00:08:05.555>APIs

181
00:08:05.725 --> 00:08:09.255
<00:08:05.725>because <00:08:05.900>the <00:08:06.075>first <00:08:06.250>load <00:08:06.425>is <00:08:06.600>not <00:08:06.775>a <00:08:06.950>navigation <00:08:07.125>event.

182
00:08:09.635 --> 00:08:12.895
<00:08:09.635>But <00:08:09.810>for <00:08:09.985>these <00:08:10.159>three <00:08:10.335>navigation <00:08:10.510>events, <00:08:10.685>we <00:08:10.860>are <00:08:11.034>aiming

183
00:08:12.955 --> 00:08:16.095
<00:08:12.955>to <00:08:13.130>have <00:08:13.305>this <00:08:13.479>just <00:08:13.655>shrink <00:08:13.830>it <00:08:14.005>a <00:08:14.180>little <00:08:14.354>bit

184
00:08:16.125 --> 00:08:17.175
<00:08:16.125>with <00:08:16.597>some <00:08:17.070>configurations.

185
00:08:17.525 --> 00:08:19.935
<00:08:17.525>It's <00:08:17.700>actually <00:08:17.875>starting <00:08:18.049>the <00:08:18.224>looting <00:08:18.400>a <00:08:18.575>little <00:08:18.750>bit <00:08:18.924>earlier.

186
00:08:20.115 --> 00:08:22.735
<00:08:20.115>So <00:08:20.290>imagine <00:08:20.465>the <00:08:20.640>same <00:08:20.815>page <00:08:20.990>but <00:08:21.165>we <00:08:21.340>started <00:08:21.515>earlier.

187
00:08:23.205 --> 00:08:26.055
<00:08:23.205>Same <00:08:23.360>page <00:08:23.516>here. <00:08:23.671>Start <00:08:23.827>earlier <00:08:23.982>and <00:08:24.138>same <00:08:24.293>page <00:08:24.449>started <00:08:24.604>earlier.

188
00:08:26.355 --> 00:08:28.415
<00:08:26.355>And <00:08:26.705>with <00:08:27.055>some <00:08:27.405>configurations, <00:08:27.755>right?

189
00:08:28.655 --> 00:08:30.175
<00:08:28.655>Configurations <00:08:28.850>that <00:08:29.045>you <00:08:29.241>are <00:08:29.436>going <00:08:29.632>to <00:08:29.827>learn <00:08:30.023>today.

190
00:08:30.475 --> 00:08:32.975
<00:08:30.475>We <00:08:30.675>are <00:08:30.875>aiming <00:08:31.075>to <00:08:31.275>have <00:08:31.475>this <00:08:31.675>in <00:08:31.875>instant

191
00:08:33.155 --> 00:08:35.495
<00:08:33.155>as <00:08:33.329>if <00:08:33.505>this <00:08:33.679>page <00:08:33.855>is <00:08:34.030>living <00:08:34.204>in <00:08:34.380>your <00:08:34.554>client's

192
00:08:35.495 --> 00:08:36.535
<00:08:35.495>browser <00:08:35.729>for <00:08:35.962>a <00:08:36.197>long <00:08:36.430>time.

193
00:08:37.755 --> 00:08:42.115
<00:08:37.755>So <00:08:37.895>we're <00:08:38.034>aiming <00:08:38.174>here <00:08:38.314>too <00:08:38.455>high <00:08:38.595>as <00:08:38.735>if <00:08:38.875>you <00:08:39.015>are <00:08:39.155>holding

194
00:08:43.075 --> 00:08:44.075
<00:08:43.075>a <00:08:43.300>book <00:08:43.525>in <00:08:43.750>your <00:08:43.975>hand.

195
00:08:44.215 --> 00:08:47.635
<00:08:44.215>And <00:08:44.370>the <00:08:44.526>flicking, <00:08:44.681>this <00:08:44.837>is <00:08:44.992>our <00:08:45.148>main <00:08:45.303>goal <00:08:45.459>to <00:08:45.615>have

196
00:08:48.285 --> 00:08:51.705
<00:08:48.285>moving <00:08:48.392>from <00:08:48.500>a <00:08:48.608>page <00:08:48.715>to <00:08:48.823>a <00:08:48.931>page <00:08:49.038>in <00:08:49.146>the <00:08:49.254>web <00:08:49.361>is <00:08:49.469>exactly <00:08:49.577>the <00:08:49.685>same.

197
00:08:51.705 --> 00:08:54.585
<00:08:51.705>Like <00:08:51.812>moving <00:08:51.920>from <00:08:52.028>a <00:08:52.135>page <00:08:52.243>to <00:08:52.351>a <00:08:52.458>page <00:08:52.566>in <00:08:52.674>a <00:08:52.781>box, <00:08:52.889>a <00:08:52.997>hard <00:08:53.105>box.

198
00:08:55.435 --> 00:08:58.045
<00:08:55.435>Imagine <00:08:55.635>you <00:08:55.834>have <00:08:56.035>this <00:08:56.234>experience <00:08:56.435>from <00:08:56.635>where <00:08:56.834>did

199
00:08:58.045 --> 00:09:00.125
<00:08:58.045>that <00:08:58.511>Harry <00:08:58.978>Potter, <00:08:59.444>right?

200
00:09:00.585 --> 00:09:02.005
<00:09:00.585>And <00:09:00.840>this <00:09:01.096>is <00:09:01.351>so <00:09:01.607>fancy, <00:09:01.863>right?

201
00:09:02.515 --> 00:09:04.685
<00:09:02.515>This <00:09:02.670>is <00:09:02.826>fantasy <00:09:02.981>that <00:09:03.137>you <00:09:03.292>have <00:09:03.448>it <00:09:03.603>in <00:09:03.759>your <00:09:03.915>hand

202
00:09:04.705 --> 00:09:05.765
<00:09:04.705>and <00:09:05.023>this <00:09:05.341>is <00:09:05.659>looting.

203
00:09:06.225 --> 00:09:08.485
<00:09:06.225>If <00:09:06.341>you <00:09:06.458>have <00:09:06.575>it <00:09:06.691>in, <00:09:06.808>in <00:09:06.925>real <00:09:07.041>life, <00:09:07.158>you <00:09:07.275>might <00:09:07.391>be <00:09:07.508>amazed, <00:09:07.625>right?

204
00:09:08.825 --> 00:09:11.645
<00:09:08.825>But <00:09:08.980>what <00:09:09.136>if <00:09:09.291>during <00:09:09.447>your <00:09:09.602>flicking <00:09:09.758>to <00:09:09.913>a <00:09:10.069>new <00:09:10.225>page

205
00:09:12.155 --> 00:09:15.085
<00:09:12.155>this <00:09:12.435>happens, <00:09:12.714>what <00:09:12.995>would <00:09:13.275>you <00:09:13.555>do?

206
00:09:15.705 --> 00:09:17.565
<00:09:15.705>You <00:09:15.860>would <00:09:16.016>just <00:09:16.171>tear <00:09:16.327>it <00:09:16.482>down <00:09:16.638>and <00:09:16.793>throw <00:09:16.949>it <00:09:17.105>away.

207
00:09:17.745 --> 00:09:18.845
<00:09:17.745>You <00:09:18.075>wouldn't <00:09:18.405>accept <00:09:18.735>that

208
00:09:18.845 --> 00:09:22.045
<00:09:18.845>because <00:09:19.000>the <00:09:19.156>perception <00:09:19.311>for <00:09:19.467>you <00:09:19.622>for <00:09:19.778>performance <00:09:19.933>of <00:09:20.089>a <00:09:20.245>hard

209
00:09:22.595 --> 00:09:25.245
<00:09:22.595>copy <00:09:22.735>of <00:09:22.875>a <00:09:23.015>book <00:09:23.155>is <00:09:23.295>flicking <00:09:23.435>and <00:09:23.575>you <00:09:23.715>have <00:09:23.855>the <00:09:23.995>page.

210
00:09:25.465 --> 00:09:27.925
<00:09:25.465>That's <00:09:25.640>exactly <00:09:25.815>what <00:09:25.990>we <00:09:26.165>aim <00:09:26.340>for <00:09:26.515>with <00:09:26.690>speculation <00:09:26.865>rules.

211
00:09:28.265 --> 00:09:32.405
<00:09:28.265>You <00:09:28.405>got <00:09:28.545>the <00:09:28.685>the <00:09:28.824>image. <00:09:28.965>So <00:09:29.105>we <00:09:29.245>need <00:09:29.385>an <00:09:29.525>instant <00:09:29.665>navigation.

212
00:09:32.745 --> 00:09:33.805
<00:09:32.745>We <00:09:32.935>have <00:09:33.126>it <00:09:33.317>ahead <00:09:33.508>of <00:09:33.699>time

213
00:09:34.185 --> 00:09:36.005
<00:09:34.185>to <00:09:34.418>remove <00:09:34.651>the <00:09:34.885>network <00:09:35.118>and <00:09:35.351>rendering <00:09:35.584>time.

214
00:09:37.035 --> 00:09:39.325
<00:09:37.035>This <00:09:37.268>can <00:09:37.501>be <00:09:37.735>applied <00:09:37.968>with <00:09:38.201>several <00:09:38.435>things.

215
00:09:39.415 --> 00:09:42.205
<00:09:39.415>First <00:09:39.555>of <00:09:39.694>all, <00:09:39.834>we <00:09:39.974>have <00:09:40.115>something <00:09:40.255>that <00:09:40.395>comes <00:09:40.535>outta <00:09:40.675>the <00:09:40.814>box

216
00:09:42.205 --> 00:09:44.045
<00:09:42.205>with <00:09:42.485>all <00:09:42.765>the <00:09:43.045>chromium <00:09:43.325>based <00:09:43.605>browsers.

217
00:09:44.075 --> 00:09:46.005
<00:09:44.075>It's <00:09:44.250>called <00:09:44.425>BF <00:09:44.600>Cache <00:09:44.775>or <00:09:44.950>back <00:09:45.125>forward <00:09:45.300>the <00:09:45.475>cache.

218
00:09:46.305 --> 00:09:48.205
<00:09:46.305>And <00:09:46.479>this <00:09:46.655>is <00:09:46.829>caching <00:09:47.005>any <00:09:47.180>page <00:09:47.354>that <00:09:47.530>you <00:09:47.704>visit

219
00:09:48.265 --> 00:09:51.285
<00:09:48.265>and <00:09:48.420>the <00:09:48.576>click <00:09:48.731>back <00:09:48.887>to <00:09:49.042>uh, <00:09:49.198>with <00:09:49.353>a <00:09:49.509>back <00:09:49.665>button

220
00:09:51.345 --> 00:09:52.965
<00:09:51.345>of <00:09:51.625>the <00:09:51.905>browser <00:09:52.185>and <00:09:52.465>go <00:09:52.745>forward.

221
00:09:53.055 --> 00:09:55.445
<00:09:53.055>Again, <00:09:53.229>this <00:09:53.405>is <00:09:53.579>being <00:09:53.755>c, <00:09:53.930>this <00:09:54.104>in <00:09:54.280>instant <00:09:54.454>navigation.

222
00:09:55.635 --> 00:09:57.085
<00:09:55.635>Same <00:09:55.961>like <00:09:56.287>the <00:09:56.613>speculation <00:09:56.940>rules.

223
00:09:57.985 --> 00:09:59.645
<00:09:57.985>The <00:09:58.335>uh, <00:09:58.685>chrome <00:09:59.035>speculations <00:09:59.385>is

224
00:09:59.665 --> 00:10:00.845
<00:09:59.665>has <00:09:59.842>been <00:10:00.019>there <00:10:00.196>for <00:10:00.373>a <00:10:00.550>long <00:10:00.727>time.

225
00:10:00.945 --> 00:10:03.085
<00:10:00.945>You <00:10:01.178>have <00:10:01.411>omni <00:10:01.645>uh, <00:10:01.878>omni <00:10:02.111>box, <00:10:02.345>sorry,

226
00:10:03.185 --> 00:10:05.605
<00:10:03.185>the <00:10:03.340>omni <00:10:03.496>box <00:10:03.651>is <00:10:03.807>the <00:10:03.962>box <00:10:04.118>of <00:10:04.273>the <00:10:04.429>chrome <00:10:04.584>top.

227
00:10:05.745 --> 00:10:07.965
<00:10:05.745>If <00:10:05.900>you <00:10:06.056>search <00:10:06.211>on <00:10:06.367>something, <00:10:06.522>it <00:10:06.678>gives <00:10:06.833>you <00:10:06.989>some <00:10:07.145>suggestions.

228
00:10:08.055 --> 00:10:11.165
<00:10:08.055>These <00:10:08.288>suggestions <00:10:08.521>actually <00:10:08.755>speculated <00:10:08.988>it's <00:10:09.221>loaded <00:10:09.454>ahead

229
00:10:11.165 --> 00:10:12.685
<00:10:11.165>of <00:10:11.507>time <00:10:11.848>pre-rendered <00:10:12.190>and <00:10:12.532>catch.

230
00:10:12.785 --> 00:10:14.285
<00:10:12.785>So <00:10:13.055>you <00:10:13.324>can <00:10:13.594>click <00:10:13.865>on <00:10:14.135>it

231
00:10:14.305 --> 00:10:17.525
<00:10:14.305>and <00:10:14.460>you <00:10:14.616>would <00:10:14.771>notice <00:10:14.927>sometimes <00:10:15.082>that <00:10:15.238>it's <00:10:15.393>pretty <00:10:15.549>faster <00:10:15.704>than

232
00:10:18.045 --> 00:10:20.885
<00:10:18.045>clicking <00:10:18.185>on <00:10:18.324>the <00:10:18.464>link <00:10:18.604>from <00:10:18.745>different <00:10:18.885>place <00:10:19.025>and <00:10:19.165>just <00:10:19.305>visit <00:10:19.444>it.

233
00:10:21.265 --> 00:10:24.485
<00:10:21.265>And <00:10:21.420>bookmarks <00:10:21.576>as <00:10:21.731>well <00:10:21.887>being <00:10:22.042>speculated <00:10:22.198>you <00:10:22.353>might <00:10:22.509>be <00:10:22.665>familiar

234
00:10:24.485 --> 00:10:27.365
<00:10:24.485>with <00:10:24.660>these <00:10:24.835>two <00:10:25.010>because <00:10:25.185>it <00:10:25.360>gives <00:10:25.535>you <00:10:25.710>an <00:10:25.885>ability

235
00:10:27.385 --> 00:10:29.685
<00:10:27.385>to <00:10:27.585>prefetch <00:10:27.785>pre-render <00:10:27.985>some <00:10:28.185>assets <00:10:28.385>ahead <00:10:28.585>of <00:10:28.785>time.

236
00:10:30.225 --> 00:10:32.485
<00:10:30.225>But <00:10:30.505>unfortunately <00:10:30.785>it <00:10:31.065>has <00:10:31.345>some <00:10:31.625>limitations

237
00:10:32.705 --> 00:10:36.125
<00:10:32.705>and <00:10:32.905>becomes <00:10:33.105>deprecated <00:10:33.305>in <00:10:33.505>favor <00:10:33.705>for <00:10:33.905>speculation <00:10:34.105>rules.

238
00:10:36.385 --> 00:10:38.125
<00:10:36.385>The <00:10:36.585>thing <00:10:36.785>that <00:10:36.985>we <00:10:37.185>are <00:10:37.385>talking <00:10:37.585>about <00:10:37.785>today.

239
00:10:38.545 --> 00:10:41.845
<00:10:38.545>So <00:10:38.745>let's <00:10:38.944>focus <00:10:39.145>on <00:10:39.344>this <00:10:39.545>one <00:10:39.745>today. <00:10:39.944>Speculation.

240
00:10:41.845 --> 00:10:43.165
<00:10:41.845>Speculation <00:10:42.439>rules, <00:10:43.033>APIs

241
00:10:43.185 --> 00:10:45.725
<00:10:43.185>or <00:10:43.535>speculative <00:10:43.885>looting <00:10:44.234>is, <00:10:44.584>uh,

242
00:10:45.745 --> 00:10:48.645
<00:10:45.745>pre <00:10:45.945>rendering <00:10:46.145>pages <00:10:46.345>in <00:10:46.545>advance <00:10:46.745>with <00:10:46.945>some <00:10:47.145>techniques.

243
00:10:49.445 --> 00:10:51.825
<00:10:49.445>And <00:10:49.572>if <00:10:49.699>we <00:10:49.826>go <00:10:49.954>back <00:10:50.081>to <00:10:50.208>the <00:10:50.335>same <00:10:50.463>idea <00:10:50.590>that <00:10:50.717>we <00:10:50.845>showed

244
00:10:51.825 --> 00:10:55.385
<00:10:51.825>before <00:10:51.980>for <00:10:52.136>the <00:10:52.291>first <00:10:52.447>load <00:10:52.602>for <00:10:52.758>index, <00:10:52.913>it <00:10:53.069>goes <00:10:53.225>through

245
00:10:55.415 --> 00:10:57.345
<00:10:55.415>that <00:10:55.694>round <00:10:55.974>trips <00:10:56.255>with <00:10:56.535>the <00:10:56.814>server.

246
00:10:57.565 --> 00:10:58.985
<00:10:57.565>We <00:10:57.884>can't <00:10:58.204>do <00:10:58.523>anything <00:10:58.843>but

247
00:11:00.095 --> 00:11:02.105
<00:11:00.095>with <00:11:00.328>some <00:11:00.561>speculation <00:11:00.795>rules <00:11:01.028>in <00:11:01.261>the <00:11:01.495>page.

248
00:11:02.605 --> 00:11:06.385
<00:11:02.605>We <00:11:02.838>discovered <00:11:03.071>HML <00:11:03.305>has <00:11:03.538>uh, <00:11:03.771>a <00:11:04.005>script

249
00:11:06.575 --> 00:11:08.185
<00:11:06.575>that <00:11:06.808>has <00:11:07.041>a <00:11:07.275>type <00:11:07.508>of <00:11:07.741>speculation <00:11:07.975>rules.

250
00:11:08.605 --> 00:11:12.185
<00:11:08.605>And <00:11:08.780>this <00:11:08.955>script <00:11:09.130>has <00:11:09.305>some <00:11:09.480>idea <00:11:09.655>telling <00:11:09.830>the <00:11:10.005>browser

251
00:11:12.325 --> 00:11:15.225
<00:11:12.325>to <00:11:12.452>load <00:11:12.579>the <00:11:12.706>pages <00:11:12.834>P <00:11:12.961>one <00:11:13.088>and <00:11:13.215>P <00:11:13.343>two <00:11:13.470>ahead <00:11:13.597>of <00:11:13.725>time.

252
00:11:16.325 --> 00:11:19.865
<00:11:16.325>So <00:11:16.500>what <00:11:16.675>will <00:11:16.850>happen <00:11:17.025>is <00:11:17.200>simply <00:11:17.375>like <00:11:17.550>loading <00:11:17.725>everything

253
00:11:19.885 --> 00:11:21.585
<00:11:19.885>and <00:11:20.118>doing <00:11:20.351>everything <00:11:20.585>I <00:11:20.818>showed <00:11:21.051>you <00:11:21.285>before,

254
00:11:21.885 --> 00:11:24.145
<00:11:21.885>but <00:11:22.085>in <00:11:22.285>a <00:11:22.485>hidden <00:11:22.685>tab <00:11:22.885>in <00:11:23.085>the <00:11:23.285>background.

255
00:11:24.245 --> 00:11:27.745
<00:11:24.245>So <00:11:24.372>you, <00:11:24.499>you <00:11:24.626>can't, <00:11:24.754>you <00:11:24.881>can't <00:11:25.008>see <00:11:25.135>it, <00:11:25.263>you <00:11:25.390>can <00:11:25.517>debug <00:11:25.645>it,

256
00:11:27.825 --> 00:11:30.025
<00:11:27.825>I <00:11:27.952>will <00:11:28.079>show <00:11:28.206>you, <00:11:28.334>but <00:11:28.461>you <00:11:28.588>can <00:11:28.715>see <00:11:28.843>it <00:11:28.970>in <00:11:29.097>the <00:11:29.225>time.

257
00:11:30.125 --> 00:11:31.465
<00:11:30.125>The <00:11:30.527>user <00:11:30.929>cannot <00:11:31.331>feel

258
00:11:31.465 --> 00:11:33.785
<00:11:31.465>that <00:11:31.620>there <00:11:31.776>is <00:11:31.931>something <00:11:32.087>is <00:11:32.242>is <00:11:32.398>loading <00:11:32.553>in <00:11:32.709>the <00:11:32.865>background.

259
00:11:34.325 --> 00:11:36.945
<00:11:34.325>So <00:11:34.452>if <00:11:34.579>you <00:11:34.706>decide <00:11:34.834>in <00:11:34.961>this <00:11:35.088>point <00:11:35.215>to <00:11:35.343>click <00:11:35.470>on <00:11:35.597>P <00:11:35.725>one,

260
00:11:36.975 --> 00:11:40.665
<00:11:36.975>what <00:11:37.115>is <00:11:37.255>happening <00:11:37.395>is <00:11:37.535>moving <00:11:37.675>the <00:11:37.815>pointer <00:11:37.955>from <00:11:38.095>the <00:11:38.235>main <00:11:38.375>thread

261
00:11:41.485 --> 00:11:44.465
<00:11:41.485>to <00:11:41.685>actually <00:11:41.885>the, <00:11:42.085>the <00:11:42.285>hidden <00:11:42.485>tab <00:11:42.685>becomes <00:11:42.885>unhidden.

262
00:11:44.655 --> 00:11:46.065
<00:11:44.655>This <00:11:44.908>is <00:11:45.162>insane. <00:11:45.416>It <00:11:45.670>just <00:11:45.924>comes.

263
00:11:49.945 --> 00:11:52.165
<00:11:49.945>So <00:11:50.145>how <00:11:50.345>can <00:11:50.545>we <00:11:50.745>write <00:11:50.945>specula <00:11:51.145>rules <00:11:51.345>enough?

264
00:11:52.425 --> 00:11:55.565
<00:11:52.425>You <00:11:52.564>know, <00:11:52.704>like <00:11:52.844>teasing <00:11:52.984>about <00:11:53.125>specula <00:11:53.265>rules, <00:11:53.405>how <00:11:53.545>to <00:11:53.685>write <00:11:53.824>it.

265
00:11:55.565 --> 00:11:57.445
<00:11:55.565>It's <00:11:55.740>very <00:11:55.915>simple. <00:11:56.090>You <00:11:56.265>might <00:11:56.440>think <00:11:56.615>that <00:11:56.790>it's <00:11:56.965>hard

266
00:11:57.705 --> 00:12:00.725
<00:11:57.705>but <00:11:57.905>it's <00:11:58.105>just <00:11:58.305>a <00:11:58.505>Jason <00:11:58.705>like <00:11:58.905>uh, <00:11:59.105>way.

267
00:12:00.985 --> 00:12:04.045
<00:12:00.985>We <00:12:01.140>have <00:12:01.296>three <00:12:01.451>things. <00:12:01.607>We <00:12:01.762>have <00:12:01.918>action, <00:12:02.073>target, <00:12:02.229>and <00:12:02.385>eagerness.

268
00:12:04.665 --> 00:12:08.045
<00:12:04.665>The <00:12:04.820>action <00:12:04.976>is <00:12:05.131>either <00:12:05.287>one <00:12:05.442>of <00:12:05.598>the <00:12:05.753>two, <00:12:05.909>either <00:12:06.064>prefetching

269
00:12:08.045 --> 00:12:12.125
<00:12:08.045>and <00:12:08.161>this <00:12:08.278>is <00:12:08.395>the <00:12:08.511>first <00:12:08.628>round <00:12:08.745>trip <00:12:08.861>to <00:12:08.978>get <00:12:09.094>the <00:12:09.211>HTML <00:12:09.328>for <00:12:09.444>parsing

270
00:12:12.625 --> 00:12:15.005
<00:12:12.625>and <00:12:12.825>pre <00:12:13.025>rendering <00:12:13.225>is <00:12:13.425>loading <00:12:13.625>the <00:12:13.825>whole <00:12:14.025>page.

271
00:12:15.465 --> 00:12:17.685
<00:12:15.465>We <00:12:15.665>have <00:12:15.865>also <00:12:16.065>target, <00:12:16.265>this <00:12:16.465>can <00:12:16.665>be <00:12:16.865>anything,

272
00:12:17.745 --> 00:12:22.085
<00:12:17.745>you <00:12:17.852>can <00:12:17.960>target <00:12:18.068>any <00:12:18.175>RL, <00:12:18.283>either <00:12:18.391>a <00:12:18.498>URL, <00:12:18.606>um, <00:12:18.714>uh, <00:12:18.821>full <00:12:18.929>uur <00:12:19.037>l <00:12:19.145>uh,

273
00:12:22.085 --> 00:12:24.845
<00:12:22.085>regular <00:12:22.285>expression <00:12:22.485>as <00:12:22.685>CS <00:12:22.885>selector <00:12:23.085>and <00:12:23.285>so <00:12:23.485>on.

274
00:12:24.855 --> 00:12:27.405
<00:12:24.855>We'll <00:12:25.055>see <00:12:25.255>that <00:12:25.455>and <00:12:25.655>eagerness <00:12:25.855>is <00:12:26.055>interesting <00:12:26.255>one,

275
00:12:27.465 --> 00:12:30.685
<00:12:27.465>we <00:12:27.698>have <00:12:27.931>three <00:12:28.165>options, <00:12:28.398>either <00:12:28.631>conservative, <00:12:28.865>moderate

276
00:12:31.185 --> 00:12:32.805
<00:12:31.185>or <00:12:32.584>immediate.

277
00:12:33.105 --> 00:12:35.205
<00:12:33.105>So <00:12:33.260>let's <00:12:33.416>focus <00:12:33.571>a <00:12:33.727>little <00:12:33.882>bit <00:12:34.038>more <00:12:34.193>on <00:12:34.349>the <00:12:34.505>eagerness.

278
00:12:35.665 --> 00:12:37.845
<00:12:35.665>If <00:12:35.898>you <00:12:36.131>have <00:12:36.365>the <00:12:36.598>eagerness <00:12:36.831>of <00:12:37.064>conservative,

279
00:12:37.845 --> 00:12:38.965
<00:12:37.845>which <00:12:38.097>is <00:12:38.349>the <00:12:38.601>lowest <00:12:38.853>one,

280
00:12:39.305 --> 00:12:42.285
<00:12:39.305>and <00:12:39.444>this <00:12:39.584>is <00:12:39.724>happening <00:12:39.864>when <00:12:40.005>you <00:12:40.145>have <00:12:40.285>like <00:12:40.425>multiple <00:12:40.564>links <00:12:40.704>in

281
00:12:42.285 --> 00:12:43.525
<00:12:42.285>the <00:12:42.564>page <00:12:42.843>and <00:12:43.122>you <00:12:43.401>decided

282
00:12:43.585 --> 00:12:46.525
<00:12:43.585>to <00:12:43.865>speculate <00:12:44.145>based <00:12:44.425>on <00:12:44.705>conservative <00:12:44.985>eagerness,

283
00:12:47.265 --> 00:12:51.085
<00:12:47.265>if <00:12:47.439>you <00:12:47.615>start <00:12:47.790>clicking <00:12:47.965>on <00:12:48.140>any <00:12:48.314>of <00:12:48.490>the <00:12:48.665>links,

284
00:12:52.035 --> 00:12:53.805
<00:12:52.035>it's <00:12:52.268>just <00:12:52.501>listen <00:12:52.735>to <00:12:52.968>the <00:12:53.201>mouse <00:12:53.435>down.

285
00:12:54.265 --> 00:12:56.325
<00:12:54.265>I'm <00:12:54.439>not <00:12:54.615>sure <00:12:54.790>if <00:12:54.965>you <00:12:55.140>uh, <00:12:55.314>familiar <00:12:55.490>with <00:12:55.665>that.

286
00:12:56.425 --> 00:12:57.925
<00:12:56.425>But <00:12:56.694>if <00:12:56.964>you <00:12:57.234>click <00:12:57.505>on <00:12:57.775>anything,

287
00:12:58.345 --> 00:13:00.645
<00:12:58.345>the <00:12:58.520>click <00:12:58.695>event <00:12:58.870>is <00:12:59.045>actually <00:12:59.220>fired <00:12:59.395>on <00:12:59.570>the <00:12:59.745>key

288
00:13:00.645 --> 00:13:02.365
<00:13:00.645>app, <00:13:00.925>not <00:13:01.204>on <00:13:01.485>a <00:13:01.765>key <00:13:02.045>down.

289
00:13:02.825 --> 00:13:06.005
<00:13:02.825>So <00:13:02.941>what <00:13:03.058>we <00:13:03.175>are <00:13:03.291>doing <00:13:03.408>here, <00:13:03.525>we <00:13:03.641>are <00:13:03.758>making <00:13:03.875>use <00:13:03.991>of <00:13:04.108>the <00:13:04.225>slowness

290
00:13:06.005 --> 00:13:08.125
<00:13:06.005>of <00:13:06.238>the <00:13:06.471>user <00:13:06.705>that <00:13:06.938>they <00:13:07.171>are <00:13:07.405>clicking

291
00:13:08.625 --> 00:13:10.045
<00:13:08.625>and <00:13:08.880>getting <00:13:09.136>up <00:13:09.391>in <00:13:09.647>one <00:13:09.903>second.

292
00:13:10.345 --> 00:13:12.285
<00:13:10.345>So <00:13:10.520>we <00:13:10.695>can <00:13:10.870>ahead <00:13:11.045>of <00:13:11.220>time <00:13:11.395>on <00:13:11.570>key <00:13:11.745>down,

293
00:13:12.345 --> 00:13:14.365
<00:13:12.345>we <00:13:12.520>start <00:13:12.695>already <00:13:12.870>loading <00:13:13.045>the <00:13:13.220>things <00:13:13.395>ahead <00:13:13.570>of <00:13:13.745>time.

294
00:13:14.835 --> 00:13:16.645
<00:13:14.835>This <00:13:15.035>gives <00:13:15.235>us <00:13:15.435>a <00:13:15.635>hit <00:13:15.835>start <00:13:16.035>of <00:13:16.235>like

295
00:13:16.645 --> 00:13:18.165
<00:13:16.645>between <00:13:16.918>a <00:13:17.192>hundred <00:13:17.465>to <00:13:17.739>200 <00:13:18.012>millisecond.

296
00:13:18.505 --> 00:13:20.325
<00:13:18.505>And <00:13:18.660>this <00:13:18.816>is <00:13:18.971>huge. <00:13:19.127>This <00:13:19.282>is <00:13:19.438>not <00:13:19.593>a <00:13:19.749>small <00:13:19.905>thing.

297
00:13:21.535 --> 00:13:25.115
<00:13:21.535>We <00:13:21.642>decide <00:13:21.750>to <00:13:21.858>go <00:13:21.965>a <00:13:22.073>little <00:13:22.181>bit, <00:13:22.288>you <00:13:22.396>know, <00:13:22.504>uh, <00:13:22.611>faster <00:13:22.719>we <00:13:22.827>can <00:13:22.935>go

298
00:13:25.115 --> 00:13:26.515
<00:13:25.115>with <00:13:25.535>eagerness <00:13:25.955>of <00:13:26.375>moderate.

299
00:13:27.135 --> 00:13:28.395
<00:13:27.135>And <00:13:27.418>this <00:13:27.702>is <00:13:27.985>more <00:13:28.269>interesting

300
00:13:28.395 --> 00:13:32.275
<00:13:28.395>because <00:13:28.569>it <00:13:28.745>actually <00:13:28.920>starts <00:13:29.095>this <00:13:29.270>speculative <00:13:29.444>loading <00:13:29.620>when <00:13:29.795>the

301
00:13:32.275 --> 00:13:35.395
<00:13:32.275>user <00:13:32.430>hoover <00:13:32.586>over <00:13:32.741>a <00:13:32.897>link <00:13:33.052>for <00:13:33.208>more <00:13:33.363>than <00:13:33.519>200 <00:13:33.675>millisecond.

302
00:13:35.815 --> 00:13:37.115
<00:13:35.815>So <00:13:36.205>you <00:13:36.595>are <00:13:36.985>speculating,

303
00:13:37.115 --> 00:13:39.115
<00:13:37.115>you <00:13:37.255>are <00:13:37.395>just <00:13:37.535>guessing <00:13:37.675>the <00:13:37.815>user <00:13:37.955>is <00:13:38.095>going <00:13:38.235>to <00:13:38.375>click <00:13:38.515>here.

304
00:13:39.115 --> 00:13:40.795
<00:13:39.115>Most <00:13:39.395>probably <00:13:39.675>sometimes <00:13:39.955>you <00:13:40.235>are <00:13:40.515>not.

305
00:13:41.175 --> 00:13:43.835
<00:13:41.175>So <00:13:41.314>it's <00:13:41.454>less <00:13:41.594>accurate <00:13:41.734>that <00:13:41.875>the <00:13:42.015>user <00:13:42.155>is <00:13:42.295>going <00:13:42.435>to <00:13:42.574>click.

306
00:13:44.175 --> 00:13:46.475
<00:13:44.175>But <00:13:44.330>this <00:13:44.486>gives <00:13:44.641>you <00:13:44.797>a <00:13:44.952>head <00:13:45.108>start <00:13:45.263>of <00:13:45.419>400 <00:13:45.574>millisecond.

307
00:13:47.015 --> 00:13:50.475
<00:13:47.015>So <00:13:47.170>this <00:13:47.326>is <00:13:47.481>another <00:13:47.637>one <00:13:47.792>that <00:13:47.948>is, <00:13:48.103>uh, <00:13:48.259>really <00:13:48.415>good.

308
00:13:51.575 --> 00:13:53.635
<00:13:51.575>You <00:13:51.775>might <00:13:51.975>be <00:13:52.175>wondering <00:13:52.375>what <00:13:52.575>is <00:13:52.775>two <00:13:52.975>first

309
00:13:53.635 --> 00:13:54.915
<00:13:53.635>and <00:13:53.827>first <00:13:54.019>out <00:13:54.211>for <00:13:54.403>both <00:13:54.595>of <00:13:54.786>them,

310
00:13:55.415 --> 00:13:58.035
<00:13:55.415>but <00:13:55.542>for <00:13:55.669>both <00:13:55.796>of <00:13:55.924>them <00:13:56.051>they <00:13:56.178>have <00:13:56.305>the <00:13:56.433>limit <00:13:56.560>of <00:13:56.687>two <00:13:56.814>links

311
00:13:58.035 --> 00:14:00.435
<00:13:58.035>that <00:13:58.190>you <00:13:58.346>can <00:13:58.501>speculate <00:13:58.657>and <00:13:58.812>keep <00:13:58.968>them <00:13:59.123>in <00:13:59.279>the <00:13:59.435>cache.

312
00:14:00.495 --> 00:14:01.795
<00:14:00.495>So <00:14:00.729>if <00:14:00.963>you <00:14:01.197>have <00:14:01.430>three <00:14:01.665>links

313
00:14:01.935 --> 00:14:03.955
<00:14:01.935>and <00:14:02.168>you <00:14:02.401>hover <00:14:02.635>over <00:14:02.868>the <00:14:03.101>third <00:14:03.334>link,

314
00:14:03.975 --> 00:14:05.635
<00:14:03.975>the <00:14:04.208>first <00:14:04.441>one <00:14:04.675>will <00:14:04.908>be <00:14:05.141>kicked <00:14:05.375>out.

315
00:14:05.935 --> 00:14:07.795
<00:14:05.935>And <00:14:06.135>anyway, <00:14:06.334>all <00:14:06.535>of <00:14:06.734>them <00:14:06.935>are <00:14:07.135>being <00:14:07.334>kicked,

316
00:14:07.855 --> 00:14:09.075
<00:14:07.855>uh, <00:14:08.404>sorry, <00:14:08.953>invalidated.

317
00:14:09.525 --> 00:14:12.035
<00:14:09.525>After <00:14:09.725>five <00:14:09.925>minutes, <00:14:10.125>the <00:14:10.324>browser <00:14:10.525>is <00:14:10.725>invalidating <00:14:10.925>them.

318
00:14:12.455 --> 00:14:15.875
<00:14:12.455>So <00:14:12.610>the <00:14:12.766>limit <00:14:12.921>for <00:14:13.077>conservative <00:14:13.232>and <00:14:13.388>moderate <00:14:13.543>is <00:14:13.699>two <00:14:13.855>links.

319
00:14:15.875 --> 00:14:18.235
<00:14:15.875>First <00:14:16.108>inference <00:14:16.341>out <00:14:16.575>for <00:14:16.808>prefetch <00:14:17.041>and <00:14:17.275>pre-render.

320
00:14:18.345 --> 00:14:21.675
<00:14:18.345>However, <00:14:18.520>the <00:14:18.695>third <00:14:18.870>and <00:14:19.045>most <00:14:19.220>important <00:14:19.395>one <00:14:19.570>is <00:14:19.745>immediate.

321
00:14:22.105 --> 00:14:23.835
<00:14:22.105>Immediate <00:14:22.385>is <00:14:22.665>giving <00:14:22.945>you <00:14:23.225>the <00:14:23.505>maximum

322
00:14:23.835 --> 00:14:27.035
<00:14:23.835>because <00:14:23.990>it <00:14:24.146>actually <00:14:24.301>searches <00:14:24.457>for <00:14:24.612>this <00:14:24.768>target <00:14:24.923>that <00:14:25.079>you <00:14:25.235>have.

323
00:14:27.975 --> 00:14:29.835
<00:14:27.975>And <00:14:28.325>once <00:14:28.675>it <00:14:29.025>finds <00:14:29.375>it

324
00:14:30.055 --> 00:14:32.835
<00:14:30.055>and <00:14:30.194>the <00:14:30.334>H <00:14:30.474>TM <00:14:30.614>L <00:14:30.755>starts <00:14:30.895>rendering <00:14:31.035>it <00:14:31.175>in <00:14:31.314>the <00:14:31.454>background

325
00:14:33.445 --> 00:14:34.595
<00:14:33.445>gives <00:14:33.790>you <00:14:34.135>great <00:14:34.480>power,

326
00:14:34.655 --> 00:14:36.715
<00:14:34.655>but <00:14:34.935>great <00:14:35.214>power <00:14:35.495>comes <00:14:35.775>great <00:14:36.055>responsibility

327
00:14:37.115 --> 00:14:39.635
<00:14:37.115>'cause <00:14:37.255>you <00:14:37.395>are <00:14:37.535>going <00:14:37.675>to <00:14:37.815>pre-render <00:14:37.955>10 <00:14:38.095>pages <00:14:38.235>ahead <00:14:38.375>of <00:14:38.515>time.

328
00:14:40.375 --> 00:14:42.835
<00:14:40.375>The <00:14:40.550>10 <00:14:40.725>pages <00:14:40.900>are <00:14:41.075>not <00:14:41.250>a <00:14:41.425>hundred <00:14:41.600>percent <00:14:41.775>sure

329
00:14:42.835 --> 00:14:45.555
<00:14:42.835>that <00:14:42.975>the <00:14:43.115>user <00:14:43.255>are <00:14:43.395>users <00:14:43.535>are <00:14:43.675>going <00:14:43.815>to <00:14:43.955>click <00:14:44.095>on <00:14:44.235>it.

330
00:14:45.855 --> 00:14:47.075
<00:14:45.855>But <00:14:46.074>you <00:14:46.294>are <00:14:46.513>doing <00:14:46.733>the <00:14:46.953>work

331
00:14:47.535 --> 00:14:50.635
<00:14:47.535>and <00:14:47.690>you <00:14:47.846>are <00:14:48.001>just <00:14:48.157>thinking <00:14:48.312>that <00:14:48.468>the <00:14:48.623>user <00:14:48.779>is <00:14:48.935>going

332
00:14:50.635 --> 00:14:53.445
<00:14:50.635>to <00:14:50.775>click <00:14:50.915>on <00:14:51.055>all <00:14:51.194>of <00:14:51.335>them, <00:14:51.475>but <00:14:51.615>most <00:14:51.755>cases <00:14:51.895>is <00:14:52.035>not.

333
00:14:53.785 --> 00:14:57.925
<00:14:53.785>And <00:14:53.912>you <00:14:54.039>can, <00:14:54.166>uh, <00:14:54.294>prefetch <00:14:54.421>also <00:14:54.548>like <00:14:54.675>50 <00:14:54.803>links <00:14:54.930>ahead <00:14:55.057>of <00:14:55.185>time.

334
00:14:58.775 --> 00:15:02.315
<00:14:58.775>So <00:14:58.891>this <00:14:59.008>is <00:14:59.125>not <00:14:59.241>recommended <00:14:59.358>to <00:14:59.475>do <00:14:59.591>except <00:14:59.708>if <00:14:59.824>you <00:14:59.941>are <00:15:00.058>very <00:15:00.175>sure

335
00:15:02.315 --> 00:15:04.155
<00:15:02.315>that <00:15:02.470>the <00:15:02.626>user <00:15:02.781>is <00:15:02.937>going <00:15:03.092>to <00:15:03.248>use <00:15:03.403>all <00:15:03.559>these <00:15:03.715>links

336
00:15:05.895 --> 00:15:07.755
<00:15:05.895>to <00:15:06.128>show <00:15:06.361>you <00:15:06.595>the <00:15:06.828>uh, <00:15:07.061>optimal <00:15:07.295>eagerness.

337
00:15:08.175 --> 00:15:11.755
<00:15:08.175>We <00:15:08.291>can <00:15:08.408>see <00:15:08.525>here <00:15:08.641>the <00:15:08.758>uh, <00:15:08.875>y <00:15:08.991>axis <00:15:09.108>is <00:15:09.224>the <00:15:09.341>time <00:15:09.458>the <00:15:09.574>head

338
00:15:11.755 --> 00:15:13.515
<00:15:11.755>to <00:15:11.930>start <00:15:12.105>time <00:15:12.280>that <00:15:12.455>you <00:15:12.630>can <00:15:12.805>gain <00:15:12.980>out <00:15:13.155>them

339
00:15:13.695 --> 00:15:15.835
<00:15:13.695>and <00:15:14.045>uh, <00:15:14.395>x <00:15:14.745>prediction <00:15:15.095>accuracy.

340
00:15:16.095 --> 00:15:18.155
<00:15:16.095>So <00:15:16.270>if <00:15:16.445>we <00:15:16.620>start <00:15:16.795>with <00:15:16.970>conservative, <00:15:17.145>as <00:15:17.320>I <00:15:17.495>said,

341
00:15:18.225 --> 00:15:20.275
<00:15:18.225>this <00:15:18.575>is <00:15:18.925>the <00:15:19.275>highest <00:15:19.625>accuracy

342
00:15:20.275 --> 00:15:21.755
<00:15:20.275>because <00:15:20.541>the <00:15:20.807>user <00:15:21.074>is <00:15:21.340>actually <00:15:21.607>clicking.

343
00:15:22.055 --> 00:15:23.995
<00:15:22.055>We <00:15:22.210>just <00:15:22.366>started <00:15:22.521>the <00:15:22.677>ahead <00:15:22.832>of <00:15:22.988>time <00:15:23.143>with <00:15:23.299>K <00:15:23.454>down.

344
00:15:24.775 --> 00:15:26.395
<00:15:24.775>If <00:15:24.975>we <00:15:25.175>go <00:15:25.375>with <00:15:25.574>moderate, <00:15:25.775>it's <00:15:25.975>in <00:15:26.175>between.

345
00:15:26.605 --> 00:15:28.755
<00:15:26.605>There <00:15:26.805>is <00:15:27.005>high <00:15:27.205>probability <00:15:27.405>because <00:15:27.605>you <00:15:27.805>hover <00:15:28.005>over.

346
00:15:28.935 --> 00:15:30.355
<00:15:28.935>So <00:15:29.190>most <00:15:29.446>probably <00:15:29.701>they <00:15:29.957>are <00:15:30.213>going

347
00:15:30.895 --> 00:15:32.315
<00:15:30.895>and <00:15:31.108>gives <00:15:31.321>you <00:15:31.534>a <00:15:31.747>better <00:15:31.960>head <00:15:32.173>start.

348
00:15:32.455 --> 00:15:34.595
<00:15:32.455>And <00:15:32.610>of <00:15:32.766>course <00:15:32.921>the <00:15:33.077>immediate, <00:15:33.232>it <00:15:33.388>gives <00:15:33.543>you <00:15:33.699>the <00:15:33.855>highest.

349
00:15:35.025 --> 00:15:37.155
<00:15:35.025>However, <00:15:35.375>it's <00:15:35.725>the <00:15:36.074>lowest <00:15:36.425>accuracy.

350
00:15:37.335 --> 00:15:38.635
<00:15:37.335>You <00:15:37.627>are <00:15:37.920>loading <00:15:38.212>every <00:15:38.505>link,

351
00:15:38.855 --> 00:15:40.515
<00:15:38.855>but <00:15:39.055>the <00:15:39.255>user <00:15:39.455>might <00:15:39.655>just <00:15:39.855>visit <00:15:40.055>the <00:15:40.255>page

352
00:15:40.515 --> 00:15:41.675
<00:15:40.515>and <00:15:40.863>leave <00:15:41.211>bounce <00:15:41.559>back.

353
00:15:41.935 --> 00:15:43.915
<00:15:41.935>So <00:15:42.135>you <00:15:42.334>did <00:15:42.535>some <00:15:42.734>work <00:15:42.935>that <00:15:43.135>is <00:15:43.334>unnecessary.

354
00:15:45.055 --> 00:15:47.195
<00:15:45.055>So <00:15:45.229>the <00:15:45.405>optimal <00:15:45.579>is <00:15:45.755>to <00:15:45.930>have <00:15:46.104>something <00:15:46.280>in <00:15:46.454>between

355
00:15:47.805 --> 00:15:49.555
<00:15:47.805>gives <00:15:48.084>you <00:15:48.364>a <00:15:48.645>bigger <00:15:48.925>head <00:15:49.204>start

356
00:15:50.135 --> 00:15:52.355
<00:15:50.135>and <00:15:50.368>give <00:15:50.601>you <00:15:50.835>a <00:15:51.068>close <00:15:51.301>enough <00:15:51.535>accuracy

357
00:15:52.355 --> 00:15:53.515
<00:15:52.355>that <00:15:52.529>the <00:15:52.703>user <00:15:52.877>is <00:15:53.051>going <00:15:53.225>to <00:15:53.399>click.

358
00:15:54.095 --> 00:15:57.435
<00:15:54.095>How <00:15:54.250>can <00:15:54.406>we <00:15:54.561>do <00:15:54.717>that? <00:15:54.872>It's <00:15:55.028>actually <00:15:55.183>to <00:15:55.339>combine <00:15:55.495>rules.

359
00:15:57.655 --> 00:15:59.675
<00:15:57.655>So <00:15:57.829>you <00:15:58.005>can <00:15:58.180>start <00:15:58.355>with <00:15:58.530>a <00:15:58.704>rule <00:15:58.880>for <00:15:59.055>prefetching.

360
00:16:00.015 --> 00:16:03.515
<00:16:00.015>If <00:16:00.142>the <00:16:00.269>with <00:16:00.396>moderate, <00:16:00.524>so <00:16:00.651>if <00:16:00.778>the <00:16:00.905>user <00:16:01.033>hover <00:16:01.160>over <00:16:01.287>a <00:16:01.415>link,

361
00:16:03.815 --> 00:16:06.435
<00:16:03.815>we <00:16:03.990>get <00:16:04.165>this <00:16:04.340>ahead <00:16:04.515>of <00:16:04.690>time, <00:16:04.865>prefetch <00:16:05.040>the <00:16:05.215>page,

362
00:16:06.525 --> 00:16:08.315
<00:16:06.525>which <00:16:06.805>is <00:16:07.084>cheaper <00:16:07.365>than <00:16:07.645>pre <00:16:07.925>rendering.

363
00:16:08.935 --> 00:16:12.395
<00:16:08.935>And <00:16:09.135>once <00:16:09.334>the <00:16:09.535>user <00:16:09.734>started <00:16:09.935>clicking <00:16:10.135>in <00:16:10.334>conservative,

364
00:16:12.665 --> 00:16:13.835
<00:16:12.665>then <00:16:12.928>you <00:16:13.191>can <00:16:13.454>pre <00:16:13.718>render.

365
00:16:14.095 --> 00:16:16.155
<00:16:14.095>So <00:16:14.270>you <00:16:14.445>get <00:16:14.620>the <00:16:14.795>best <00:16:14.970>of <00:16:15.145>the <00:16:15.320>both <00:16:15.495>words.

366
00:16:18.505 --> 00:16:19.885
<00:16:18.505>So <00:16:18.753>how <00:16:19.001>can <00:16:19.250>we <00:16:19.498>measure <00:16:19.747>performance

367
00:16:19.885 --> 00:16:22.405
<00:16:19.885>to <00:16:20.085>see <00:16:20.285>if <00:16:20.485>speculation <00:16:20.685>rules <00:16:20.885>is <00:16:21.085>actually <00:16:21.285>working?

368
00:16:22.475 --> 00:16:24.965
<00:16:22.475>It's <00:16:22.650>actually <00:16:22.825>giving <00:16:23.000>us <00:16:23.175>a <00:16:23.350>push, <00:16:23.525>uh, <00:16:23.700>a <00:16:23.875>post,

369
00:16:25.745 --> 00:16:27.725
<00:16:25.745>the <00:16:25.945>user <00:16:26.145>can <00:16:26.345>see <00:16:26.545>something <00:16:26.745>and <00:16:26.945>see <00:16:27.145>something.

370
00:16:27.945 --> 00:16:30.845
<00:16:27.945>And <00:16:28.100>we <00:16:28.256>as <00:16:28.411>the <00:16:28.567>are <00:16:28.722>measuring <00:16:28.878>in <00:16:29.033>a <00:16:29.189>different <00:16:29.345>way,

371
00:16:31.225 --> 00:16:32.725
<00:16:31.225>if <00:16:31.450>the <00:16:31.675>user <00:16:31.900>say, <00:16:32.125>is <00:16:32.350>it <00:16:32.575>happening?

372
00:16:32.985 --> 00:16:35.485
<00:16:32.985>We <00:16:33.160>are <00:16:33.335>measuring <00:16:33.510>with <00:16:33.685>something <00:16:33.860>called <00:16:34.035>for <00:16:34.210>Contentful <00:16:34.385>Bend.

373
00:16:36.785 --> 00:16:38.045
<00:16:36.785>If <00:16:36.973>the <00:16:37.163>user <00:16:37.352>say, <00:16:37.540>is <00:16:37.730>it <00:16:37.919>useful?

374
00:16:38.045 --> 00:16:39.805
<00:16:38.045>This <00:16:38.200>is <00:16:38.356>the <00:16:38.511>biggest <00:16:38.667>thing <00:16:38.822>in <00:16:38.978>the <00:16:39.133>screen <00:16:39.289>in <00:16:39.444>front

375
00:16:39.805 --> 00:16:41.205
<00:16:39.805>of <00:16:40.015>the <00:16:40.225>user, <00:16:40.435>we <00:16:40.645>are <00:16:40.855>measuring <00:16:41.065>it

376
00:16:41.205 --> 00:16:43.245
<00:16:41.205>with <00:16:41.485>something <00:16:41.765>called <00:16:42.045>largest <00:16:42.325>Contentful <00:16:42.605>bend.

377
00:16:43.385 --> 00:16:45.845
<00:16:43.385>Why <00:16:43.618>I'm <00:16:43.851>showing <00:16:44.085>you <00:16:44.318>that? <00:16:44.551>Because <00:16:44.785>actually,

378
00:16:46.185 --> 00:16:49.205
<00:16:46.185>if <00:16:46.324>you <00:16:46.464>put <00:16:46.604>the <00:16:46.744>action <00:16:46.885>to <00:16:47.025>be <00:16:47.165>prefetch, <00:16:47.305>you <00:16:47.444>are <00:16:47.584>saving

379
00:16:49.335 --> 00:16:50.805
<00:16:49.335>until <00:16:49.776>the <00:16:50.217>first <00:16:50.657>Contentful.

380
00:16:50.805 --> 00:16:53.725
<00:16:50.805>Ben, <00:16:50.898>this <00:16:50.991>is <00:16:51.084>a <00:16:51.178>time <00:16:51.271>that <00:16:51.364>you <00:16:51.458>fit <00:16:51.551>the <00:16:51.645>H <00:16:51.738>TM <00:16:51.831>L <00:16:51.925>you <00:16:52.018>know <00:16:52.111>what <00:16:52.204>is

381
00:16:53.725 --> 00:16:55.165
<00:16:53.725>inside <00:16:53.984>it, <00:16:54.243>but <00:16:54.502>it's <00:16:54.761>not <00:16:55.021>rendered.

382
00:16:55.465 --> 00:16:57.325
<00:16:55.465>The <00:16:55.665>parsing <00:16:55.865>is <00:16:56.065>happening, <00:16:56.265>you <00:16:56.465>know <00:16:56.665>the <00:16:56.865>assets,

383
00:16:57.325 --> 00:16:58.365
<00:16:57.325>but <00:16:57.559>you <00:16:57.793>didn't <00:16:58.027>request <00:16:58.261>them.

384
00:16:59.665 --> 00:17:01.325
<00:16:59.665>And <00:16:59.898>if <00:17:00.131>you <00:17:00.365>decide <00:17:00.598>to <00:17:00.831>go <00:17:01.064>pre-render,

385
00:17:01.425 --> 00:17:02.685
<00:17:01.425>you <00:17:01.651>are <00:17:01.878>serving <00:17:02.105>for <00:17:02.332>the <00:17:02.559>LCP.

386
00:17:02.685 --> 00:17:04.725
<00:17:02.685>So <00:17:02.918>bitter <00:17:03.151>LCP, <00:17:03.385>this <00:17:03.618>is <00:17:03.851>our <00:17:04.085>target,

387
00:17:04.755 --> 00:17:06.885
<00:17:04.755>this <00:17:04.955>is <00:17:05.155>our <00:17:05.355>measurement, <00:17:05.555>this <00:17:05.755>is <00:17:05.955>our <00:17:06.155>metric.

388
00:17:07.265 --> 00:17:10.405
<00:17:07.265>If <00:17:07.440>we <00:17:07.615>have <00:17:07.790>speculation <00:17:07.965>rules <00:17:08.140>and <00:17:08.315>LCP <00:17:08.490>is <00:17:08.665>bitter.

389
00:17:10.515 --> 00:17:13.285
<00:17:10.515>This <00:17:10.715>means <00:17:10.915>that <00:17:11.115>speculation <00:17:11.315>rules <00:17:11.515>did <00:17:11.715>the <00:17:11.915>job.

390
00:17:13.545 --> 00:17:16.285
<00:17:13.545>It <00:17:13.720>actually <00:17:13.895>enhanced <00:17:14.070>our <00:17:14.245>performance <00:17:14.420>of <00:17:14.595>loading <00:17:14.770>for, <00:17:14.945>uh,

391
00:17:16.425 --> 00:17:17.845
<00:17:16.425>the <00:17:16.850>navigated, <00:17:17.277>uh, <00:17:17.703>pages.

392
00:17:19.745 --> 00:17:22.925
<00:17:19.744>And <00:17:19.900>lucky <00:17:20.056>enough, <00:17:20.211>we <00:17:20.367>have <00:17:20.522>this <00:17:20.678>inside <00:17:20.833>something <00:17:20.989>called, <00:17:21.145>uh,

393
00:17:22.955 --> 00:17:24.405
<00:17:22.954>core <00:17:23.389>vitals <00:17:23.825>Google <00:17:24.260>created,

394
00:17:24.865 --> 00:17:27.165
<00:17:24.865>and <00:17:25.040>this <00:17:25.214>is <00:17:25.390>coming <00:17:25.565>with <00:17:25.740>some <00:17:25.915>thresholds <00:17:26.089>as <00:17:26.265>well.

395
00:17:28.165 --> 00:17:30.525
<00:17:28.165>LCP <00:17:28.398>for <00:17:28.631>example. <00:17:28.865>Anything <00:17:29.098>below <00:17:29.331>two <00:17:29.565>seconds

396
00:17:30.625 --> 00:17:33.005
<00:17:30.625>and <00:17:30.800>a <00:17:30.975>half <00:17:31.150>means <00:17:31.325>it's <00:17:31.500>a <00:17:31.675>good <00:17:31.850>enough, <00:17:32.025>okay?

397
00:17:33.025 --> 00:17:36.045
<00:17:33.025>But <00:17:33.180>the <00:17:33.336>closer <00:17:33.491>to <00:17:33.647>zero <00:17:33.802>the <00:17:33.958>better <00:17:34.113>for <00:17:34.269>the <00:17:34.425>LCP

398
00:17:36.045 --> 00:17:37.885
<00:17:36.045>because <00:17:36.278>the <00:17:36.511>page <00:17:36.745>is <00:17:36.978>not <00:17:37.211>only <00:17:37.445>LCP,

399
00:17:37.965 --> 00:17:40.645
<00:17:37.965>you <00:17:38.120>might <00:17:38.276>have <00:17:38.431>looted <00:17:38.587>a <00:17:38.742>lot <00:17:38.898>of <00:17:39.053>things, <00:17:39.209>small <00:17:39.365>things,

400
00:17:40.705 --> 00:17:41.925
<00:17:40.705>but <00:17:40.924>takes <00:17:41.144>time <00:17:41.363>to <00:17:41.583>be <00:17:41.803>looted.

401
00:17:43.265 --> 00:17:45.965
<00:17:43.265>So <00:17:43.465>in <00:17:43.665>knife, <00:17:43.865>uh, <00:17:44.065>uh, <00:17:44.265>showing <00:17:44.465>let's, <00:17:44.665>uh,

402
00:17:46.115 --> 00:17:50.125
<00:17:46.115>give <00:17:46.270>you <00:17:46.426>a <00:17:46.581>quick <00:17:46.737>demo <00:17:46.892>that <00:17:47.048>you <00:17:47.203>can <00:17:47.359>can, <00:17:47.515>oops,

403
00:17:53.325 --> 00:17:56.265
<00:17:53.325>it <00:17:53.500>means <00:17:53.675>just, <00:17:53.850>uh, <00:17:54.025>try <00:17:54.200>to <00:17:54.375>bring <00:17:54.550>that <00:17:54.725>here.

404
00:18:00.585 --> 00:18:02.925
<00:18:00.585>Oh, <00:18:00.760>it <00:18:00.935>seems <00:18:01.110>that <00:18:01.285>I, <00:18:01.460>uh, <00:18:01.635>I <00:18:01.810>stopped <00:18:01.985>measuring.

405
00:18:02.925 --> 00:18:04.525
<00:18:02.925>Okay, <00:18:03.125>I <00:18:03.325>I <00:18:03.524>will <00:18:03.725>work <00:18:03.925>it <00:18:04.125>like <00:18:04.325>that.

406
00:18:05.225 --> 00:18:07.885
<00:18:05.225>Uh, <00:18:05.380>so <00:18:05.536>for <00:18:05.691>the <00:18:05.847>demo, <00:18:06.002>we <00:18:06.158>have <00:18:06.313>a <00:18:06.469>quick <00:18:06.625>demo

407
00:18:07.885 --> 00:18:09.445
<00:18:07.885>that <00:18:08.165>the <00:18:08.445>Chrome <00:18:08.725>team <00:18:09.004>created <00:18:09.285>already.

408
00:18:12.095 --> 00:18:15.925
<00:18:12.095>There <00:18:12.222>you <00:18:12.349>go. <00:18:12.476>So <00:18:12.604>we <00:18:12.731>have <00:18:12.858>here <00:18:12.985>a <00:18:13.113>page <00:18:13.240>full <00:18:13.367>of <00:18:13.495>links

409
00:18:17.355 --> 00:18:21.015
<00:18:17.355>and <00:18:17.495>what <00:18:17.635>we <00:18:17.775>are <00:18:17.915>opening <00:18:18.055>over <00:18:18.195>here <00:18:18.335>is, <00:18:18.475>uh, <00:18:18.615>the <00:18:18.755>performance

410
00:18:21.555 --> 00:18:22.615
<00:18:21.555>tab <00:18:21.793>in <00:18:22.032>your <00:18:22.270>dev <00:18:22.509>tools.

411
00:18:23.075 --> 00:18:25.855
<00:18:23.075>So, <00:18:23.202>uh, <00:18:23.329>it, <00:18:23.456>it <00:18:23.584>measures <00:18:23.711>the <00:18:23.838>core <00:18:23.965>with <00:18:24.093>vitals <00:18:24.220>ahead <00:18:24.347>of <00:18:24.475>time,

412
00:18:26.095 --> 00:18:28.375
<00:18:26.095>LCP <00:18:26.445>and <00:18:26.795>CLS <00:18:27.145>and <00:18:27.495>IMP.

413
00:18:29.035 --> 00:18:31.215
<00:18:29.035>We <00:18:29.235>just <00:18:29.435>reload <00:18:29.635>the <00:18:29.835>page <00:18:30.035>mounting <00:18:30.235>what <00:18:30.435>happen.

414
00:18:31.285 --> 00:18:33.255
<00:18:31.285>However, <00:18:31.565>all <00:18:31.845>these <00:18:32.125>pages <00:18:32.405>in <00:18:32.685>front

415
00:18:33.255 --> 00:18:35.055
<00:18:33.255>of <00:18:33.605>you <00:18:33.955>are <00:18:34.305>already <00:18:34.655>speculated.

416
00:18:35.475 --> 00:18:37.535
<00:18:35.475>So <00:18:35.630>how <00:18:35.786>can <00:18:35.941>I <00:18:36.097>see <00:18:36.252>if <00:18:36.408>it's <00:18:36.563>speculated <00:18:36.719>or <00:18:36.875>not?

417
00:18:38.075 --> 00:18:40.215
<00:18:38.075>You <00:18:38.250>can <00:18:38.425>open <00:18:38.600>application <00:18:38.775>tab <00:18:38.950>in <00:18:39.125>your <00:18:39.300>other <00:18:39.475>tools

418
00:18:40.675 --> 00:18:42.735
<00:18:40.675>and <00:18:40.908>in <00:18:41.141>application <00:18:41.375>tab <00:18:41.608>you'll <00:18:41.841>find <00:18:42.075>something

419
00:18:42.735 --> 00:18:43.775
<00:18:42.735>called <00:18:43.203>background <00:18:43.671>surfaces.

420
00:18:43.985 --> 00:18:47.175
<00:18:43.985>Underneath <00:18:44.159>it <00:18:44.334>there <00:18:44.510>is <00:18:44.685>something <00:18:44.860>called <00:18:45.034>a <00:18:45.209>speculation, <00:18:45.385>uh,

421
00:18:47.395 --> 00:18:49.495
<00:18:47.395>uh, <00:18:47.745>rules <00:18:48.095>This <00:18:48.445>speculation <00:18:48.795>rules

422
00:18:49.555 --> 00:18:51.535
<00:18:49.555>inside <00:18:49.835>it <00:18:50.115>you <00:18:50.395>can <00:18:50.675>open <00:18:50.955>rules.

423
00:18:51.915 --> 00:18:56.055
<00:18:51.915>If <00:18:52.070>you <00:18:52.226>click <00:18:52.381>here, <00:18:52.537>you'll <00:18:52.692>find <00:18:52.848>the <00:18:53.003>actual <00:18:53.159>rules <00:18:53.315>written

424
00:18:56.155 --> 00:18:57.415
<00:18:56.155>inside <00:18:56.722>this <00:18:57.289>HTML.

425
00:18:58.585 --> 00:19:02.355
<00:18:58.585>Okay? <00:18:58.712>So <00:18:58.839>what's <00:18:58.966>written <00:18:59.094>here <00:18:59.221>is <00:18:59.348>any <00:18:59.475>link <00:18:59.603>in <00:18:59.730>the <00:18:59.857>page <00:18:59.985>except

426
00:19:02.415 --> 00:19:05.635
<00:19:02.415>for <00:19:02.555>links <00:19:02.695>that <00:19:02.835>start <00:19:02.975>with <00:19:03.115>that <00:19:03.254>is <00:19:03.395>going <00:19:03.534>to <00:19:03.675>be <00:19:03.815>speculated.

427
00:19:05.945 --> 00:19:09.675
<00:19:05.945>What <00:19:06.072>we <00:19:06.199>are <00:19:06.326>doing, <00:19:06.454>the <00:19:06.581>action <00:19:06.708>is, <00:19:06.835>uh, <00:19:06.963>to <00:19:07.090>be, <00:19:07.217>uh, <00:19:07.345>pre-render

428
00:19:10.095 --> 00:19:12.715
<00:19:10.095>and <00:19:10.270>actually <00:19:10.445>we <00:19:10.620>have <00:19:10.795>this <00:19:10.970>eagerness <00:19:11.145>to <00:19:11.320>be <00:19:11.495>moderate,

429
00:19:12.885 --> 00:19:14.435
<00:19:12.885>which <00:19:13.117>means <00:19:13.350>if <00:19:13.582>you <00:19:13.815>hover <00:19:14.047>over <00:19:14.280>it

430
00:19:14.435 --> 00:19:16.755
<00:19:14.435>for <00:19:14.635>more <00:19:14.835>than <00:19:15.034>200 <00:19:15.235>millisecond, <00:19:15.435>you <00:19:15.635>are <00:19:15.835>going

431
00:19:16.755 --> 00:19:18.155
<00:19:16.755>to <00:19:17.007>have <00:19:17.259>it <00:19:17.511>pre-rendered <00:19:17.763>for <00:19:18.014>you.

432
00:19:18.865 --> 00:19:21.795
<00:19:18.865>Cool. <00:19:18.992>So <00:19:19.119>what <00:19:19.246>can <00:19:19.374>we <00:19:19.501>do <00:19:19.628>here <00:19:19.755>is <00:19:19.883>clicking <00:19:20.010>to <00:19:20.137>this, <00:19:20.265>uh,

433
00:19:21.795 --> 00:19:23.875
<00:19:21.795>22 <00:19:22.261>and <00:19:22.728>not <00:19:23.195>triggered.

434
00:19:24.295 --> 00:19:26.355
<00:19:24.295>You <00:19:24.470>will <00:19:24.645>find, <00:19:24.820>let <00:19:24.995>me <00:19:25.170>just <00:19:25.345>close <00:19:25.520>this <00:19:25.695>one.

435
00:19:27.255 --> 00:19:30.675
<00:19:27.255>You'll <00:19:27.395>find <00:19:27.535>that <00:19:27.675>you <00:19:27.815>have <00:19:27.955>this <00:19:28.095>22 <00:19:28.235>links <00:19:28.375>depicted <00:19:28.515>based <00:19:28.655>on

436
00:19:30.675 --> 00:19:33.955
<00:19:30.675>targets <00:19:30.850>that <00:19:31.024>you <00:19:31.200>have <00:19:31.375>and <00:19:31.550>these <00:19:31.725>links <00:19:31.899>are <00:19:32.075>uh,

437
00:19:34.975 --> 00:19:35.995
<00:19:34.975>is <00:19:35.281>big <00:19:35.587>enough, <00:19:35.892>okay?

438
00:19:36.445 --> 00:19:39.235
<00:19:36.445>These <00:19:36.645>links <00:19:36.845>are <00:19:37.044>the <00:19:37.245>links <00:19:37.445>for <00:19:37.645>these <00:19:37.845>fruits.

439
00:19:40.035 --> 00:19:43.155
<00:19:40.035>I <00:19:40.190>would <00:19:40.346>like <00:19:40.501>you <00:19:40.657>to <00:19:40.812>look <00:19:40.968>into <00:19:41.123>this <00:19:41.279>status <00:19:41.435>column.

440
00:19:43.815 --> 00:19:48.275
<00:19:43.815>If <00:19:43.955>I <00:19:44.095>hover <00:19:44.235>over <00:19:44.375>for <00:19:44.515>example, <00:19:44.655>mil, <00:19:44.795>have <00:19:44.935>you <00:19:45.075>seen <00:19:45.215>that?

441
00:19:48.815 --> 00:19:52.835
<00:19:48.815>So <00:19:48.955>what <00:19:49.095>is <00:19:49.235>happening <00:19:49.375>right <00:19:49.515>now <00:19:49.655>that <00:19:49.795>this <00:19:49.935>page <00:19:50.075>is <00:19:50.215>detected

442
00:19:53.295 --> 00:19:56.715
<00:19:53.295>and <00:19:53.422>was <00:19:53.549>triggered <00:19:53.676>with <00:19:53.804>the <00:19:53.931>action <00:19:54.058>and <00:19:54.185>now <00:19:54.313>it <00:19:54.440>is <00:19:54.567>pre <00:19:54.695>rendered

443
00:19:56.715 --> 00:19:57.795
<00:19:56.715>and <00:19:56.957>ready <00:19:57.201>to <00:19:57.444>be <00:19:57.687>clicked.

444
00:19:59.545 --> 00:20:02.675
<00:19:59.545>What <00:19:59.745>is <00:19:59.945>so <00:20:00.145>cool <00:20:00.345>here <00:20:00.545>that <00:20:00.745>you'll <00:20:00.945>find

445
00:20:02.675 --> 00:20:05.855
<00:20:02.675>as <00:20:02.850>well <00:20:03.024>something <00:20:03.200>new <00:20:03.375>appear <00:20:03.550>to <00:20:03.725>head, <00:20:03.899>which <00:20:04.075>is

446
00:20:06.495 --> 00:20:09.015
<00:20:06.495>a <00:20:06.695>dropdown <00:20:06.895>list <00:20:07.094>for <00:20:07.294>all <00:20:07.495>the <00:20:07.695>hidden <00:20:07.895>tabs

447
00:20:09.015 --> 00:20:11.375
<00:20:09.015>that <00:20:09.170>has <00:20:09.326>been <00:20:09.481>pre <00:20:09.637>rendered <00:20:09.792>for <00:20:09.948>you <00:20:10.103>in <00:20:10.259>the <00:20:10.415>background.

448
00:20:11.875 --> 00:20:13.775
<00:20:11.875>You <00:20:12.108>can <00:20:12.341>switch <00:20:12.575>to <00:20:12.808>the <00:20:13.041>page <00:20:13.275>itself.

449
00:20:14.155 --> 00:20:16.695
<00:20:14.155>How <00:20:14.262>can <00:20:14.370>I <00:20:14.478>show, <00:20:14.585>uh, <00:20:14.693>be <00:20:14.801>sure <00:20:14.908>that <00:20:15.016>I <00:20:15.124>switch <00:20:15.231>it <00:20:15.339>to <00:20:15.447>this <00:20:15.555>one.

450
00:20:16.695 --> 00:20:19.375
<00:20:16.695>This <00:20:16.835>now <00:20:16.975>diff <00:20:17.115>tools <00:20:17.254>now <00:20:17.395>is <00:20:17.534>running <00:20:17.675>in <00:20:17.814>the <00:20:17.955>hidden <00:20:18.095>tab

451
00:20:19.485 --> 00:20:20.935
<00:20:19.485>that <00:20:19.702>is <00:20:19.919>not <00:20:20.137>visible <00:20:20.355>to <00:20:20.572>the <00:20:20.790>user,

452
00:20:21.155 --> 00:20:23.495
<00:20:21.155>but <00:20:21.330>it's <00:20:21.504>useful <00:20:21.680>for <00:20:21.855>you <00:20:22.030>developer <00:20:22.205>to <00:20:22.379>debug <00:20:22.555>that

453
00:20:23.995 --> 00:20:25.015
<00:20:23.995>so <00:20:24.224>you <00:20:24.454>can <00:20:24.683>open <00:20:24.913>that

454
00:20:25.715 --> 00:20:30.055
<00:20:25.715>and <00:20:25.889>for <00:20:26.064>example, <00:20:26.240>by <00:20:26.415>open <00:20:26.590>console, <00:20:26.764>I'll <00:20:26.939>say <00:20:27.115>Yes,

455
00:20:30.155 --> 00:20:33.095
<00:20:30.155>I'm <00:20:30.310>Melon <00:20:30.466>and <00:20:30.621>if <00:20:30.777>you <00:20:30.932>open <00:20:31.088>network <00:20:31.243>tab, <00:20:31.399>you'll <00:20:31.555>find

456
00:20:33.095 --> 00:20:34.775
<00:20:33.095>that <00:20:33.328>all <00:20:33.561>the <00:20:33.795>things <00:20:34.028>here <00:20:34.261>are <00:20:34.495>melon.

457
00:20:34.775 --> 00:20:37.375
<00:20:34.775>So <00:20:34.902>how <00:20:35.029>can <00:20:35.156>I <00:20:35.284>make <00:20:35.411>sure <00:20:35.538>I <00:20:35.665>can <00:20:35.793>go <00:20:35.920>back <00:20:36.047>to <00:20:36.175>main,

458
00:20:37.885 --> 00:20:40.655
<00:20:37.885>this <00:20:38.060>is <00:20:38.235>the <00:20:38.410>main <00:20:38.585>and <00:20:38.760>we <00:20:38.935>have <00:20:39.110>this <00:20:39.285>tool

459
00:20:40.715 --> 00:20:42.935
<00:20:40.715>for <00:20:41.181>the <00:20:41.648>speculated <00:20:42.115>page.

460
00:20:43.425 --> 00:20:46.315
<00:20:43.425>Alright, <00:20:43.625>so <00:20:43.825>if <00:20:44.024>I <00:20:44.225>go <00:20:44.425>to <00:20:44.625>performance <00:20:44.825>tab

461
00:20:46.855 --> 00:20:50.045
<00:20:46.855>and <00:20:47.010>they <00:20:47.166>decided <00:20:47.321>to <00:20:47.477>click <00:20:47.632>on <00:20:47.788>me, <00:20:47.943>look <00:20:48.099>at <00:20:48.255>this,

462
00:20:50.435 --> 00:20:53.645
<00:20:50.435>it's <00:20:50.668>like <00:20:50.901>150 <00:20:51.135>millisecond <00:20:51.368>for <00:20:51.601>LCP, <00:20:51.835>right?

463
00:20:54.585 --> 00:20:56.525
<00:20:54.585>How <00:20:54.818>can <00:20:55.051>I <00:20:55.285>see <00:20:55.518>the <00:20:55.751>original <00:20:55.985>performance

464
00:20:56.525 --> 00:20:58.005
<00:20:56.525>of <00:20:56.791>this <00:20:57.057>page <00:20:57.324>Without <00:20:57.590>speculation <00:20:57.857>rules,

465
00:20:58.365 --> 00:21:00.325
<00:20:58.365>I <00:20:58.565>will <00:20:58.765>just <00:20:58.965>empty <00:20:59.165>cache <00:20:59.365>and <00:20:59.565>hard <00:20:59.765>relu.

466
00:21:00.425 --> 00:21:03.565
<00:21:00.425>So <00:21:00.600>you <00:21:00.774>can <00:21:00.950>see <00:21:01.125>LCP, <00:21:01.300>wow, <00:21:01.475>almost <00:21:01.649>a <00:21:01.825>second.

467
00:21:03.945 --> 00:21:06.685
<00:21:03.945>That's <00:21:04.100>almost <00:21:04.256>a <00:21:04.411>second. <00:21:04.567>You <00:21:04.722>might <00:21:04.878>say <00:21:05.033>that. <00:21:05.189>All <00:21:05.345>right.

468
00:21:07.125 --> 00:21:08.605
<00:21:07.125>LCP <00:21:07.391>is <00:21:07.657>now <00:21:07.924>within <00:21:08.190>the <00:21:08.457>threshold.

469
00:21:08.675 --> 00:21:11.445
<00:21:08.675>It's <00:21:08.815>okay <00:21:08.955>to <00:21:09.095>continue <00:21:09.235>with <00:21:09.375>that, <00:21:09.514>but <00:21:09.655>I <00:21:09.794>would <00:21:09.935>say <00:21:10.075>not

470
00:21:11.555 --> 00:21:16.045
<00:21:11.555>because <00:21:11.671>the <00:21:11.788>page <00:21:11.905>is <00:21:12.021>not <00:21:12.138>only, <00:21:12.255>this <00:21:12.371>is <00:21:12.488>a <00:21:12.605>very <00:21:12.721>simple <00:21:12.838>page <00:21:12.955>in,

471
00:21:16.045 --> 00:21:19.045
<00:21:16.045>uh, <00:21:16.220>e-commerce <00:21:16.395>or <00:21:16.570>big <00:21:16.745>application, <00:21:16.920>it <00:21:17.095>wouldn't <00:21:17.270>be <00:21:17.445>that

472
00:21:19.045 --> 00:21:21.365
<00:21:19.045>that <00:21:19.395>simple <00:21:19.745>loading <00:21:20.095>the <00:21:20.445>page

473
00:21:21.665 --> 00:21:23.325
<00:21:21.665>and <00:21:22.014>uh, <00:21:22.365>optimizing <00:21:22.715>the <00:21:23.065>page

474
00:21:23.385 --> 00:21:25.045
<00:21:23.385>for <00:21:23.618>the <00:21:23.851>first <00:21:24.085>load <00:21:24.318>anyway <00:21:24.551>is <00:21:24.785>good.

475
00:21:25.425 --> 00:21:28.845
<00:21:25.425>But <00:21:25.565>having <00:21:25.705>it <00:21:25.845>with <00:21:25.985>a <00:21:26.125>navigation <00:21:26.264>in <00:21:26.405>a <00:21:26.544>different, <00:21:26.685>uh, <00:21:26.825>level

476
00:21:28.865 --> 00:21:32.405
<00:21:28.865>of <00:21:29.005>performance <00:21:29.145>as <00:21:29.285>you <00:21:29.425>will <00:21:29.565>see <00:21:29.705>is, <00:21:29.845>uh, <00:21:29.985>is <00:21:30.125>the <00:21:30.265>best.

477
00:21:32.865 --> 00:21:34.965
<00:21:32.865>So <00:21:33.098>if <00:21:33.331>I <00:21:33.565>open <00:21:33.798>this <00:21:34.031>application <00:21:34.265>again

478
00:21:35.305 --> 00:21:38.045
<00:21:35.305>and <00:21:35.480>I <00:21:35.655>will <00:21:35.830>go <00:21:36.005>with <00:21:36.180>Melon, <00:21:36.355>wait <00:21:36.530>for <00:21:36.705>it

479
00:21:38.045 --> 00:21:41.525
<00:21:38.045>to <00:21:38.200>be <00:21:38.356>ready <00:21:38.511>when <00:21:38.667>I <00:21:38.822>click <00:21:38.978>it <00:21:39.133>was <00:21:39.289>800 <00:21:39.445>something.

480
00:21:41.525 --> 00:21:43.005
<00:21:41.525>Right? <00:21:41.858>Now, <00:21:42.191>if <00:21:42.524>I <00:21:42.857>click

481
00:21:43.745 --> 00:21:48.045
<00:21:43.745>Woo, <00:21:44.094>That's <00:21:44.445>like <00:21:44.794>90% <00:21:45.145>enhancement.

482
00:21:48.225 --> 00:21:50.525
<00:21:48.225>So <00:21:48.425>imagine <00:21:48.625>if <00:21:48.824>it <00:21:49.024>takes <00:21:49.225>like <00:21:49.425>two <00:21:49.625>seconds

483
00:21:50.705 --> 00:21:51.885
<00:21:50.705>to <00:21:51.059>be <00:21:51.413>200 <00:21:51.767>millisecond.

484
00:21:52.745 --> 00:21:56.395
<00:21:52.745>If <00:21:52.885>we <00:21:53.024>measure <00:21:53.165>it <00:21:53.304>the <00:21:53.445>same <00:21:53.584>way, <00:21:53.725>If <00:21:53.864>we <00:21:54.004>go <00:21:54.145>back

485
00:21:57.315 --> 00:21:59.875
<00:21:57.315>anything <00:21:57.490>I <00:21:57.665>click <00:21:57.840>on <00:21:58.015>without <00:21:58.190>waiting <00:21:58.365>for <00:21:58.540>200 <00:21:58.715>millisecond,

486
00:22:00.785 --> 00:22:02.275
<00:22:00.785>it's <00:22:01.120>almost <00:22:01.455>one <00:22:01.790>second, <00:22:02.126>right?

487
00:22:02.775 --> 00:22:04.635
<00:22:02.775>But <00:22:02.975>the <00:22:03.175>user <00:22:03.375>is <00:22:03.575>not <00:22:03.775>usually <00:22:03.975>doing <00:22:04.175>that.

488
00:22:04.775 --> 00:22:08.355
<00:22:04.775>The <00:22:04.930>user <00:22:05.086>is <00:22:05.241>going <00:22:05.397>here <00:22:05.552>and <00:22:05.708>click, <00:22:05.863>there <00:22:06.019>you <00:22:06.175>go.

489
00:22:08.655 --> 00:22:12.235
<00:22:08.655>So <00:22:08.782>we <00:22:08.909>are <00:22:09.036>always <00:22:09.164>saving <00:22:09.291>between <00:22:09.418>90 <00:22:09.545>to <00:22:09.673>95% <00:22:09.800>of <00:22:09.927>the <00:22:10.055>time

490
00:22:12.235 --> 00:22:14.195
<00:22:12.235>that <00:22:12.514>we <00:22:12.794>are <00:22:13.074>loading <00:22:13.354>this <00:22:13.635>LCP.

491
00:22:14.615 --> 00:22:18.955
<00:22:14.615>So <00:22:14.742>this <00:22:14.869>way, <00:22:14.996>if <00:22:15.124>you <00:22:15.251>have <00:22:15.378>already <00:22:15.505>a <00:22:15.633>bad <00:22:15.760>LCP <00:22:15.887>without <00:22:16.015>the

492
00:22:18.955 --> 00:22:21.875
<00:22:18.955>optimization <00:22:19.155>of <00:22:19.355>the <00:22:19.554>first <00:22:19.754>load, <00:22:19.955>I <00:22:20.155>don't <00:22:20.355>recommend

493
00:22:21.875 --> 00:22:23.515
<00:22:21.875>that <00:22:22.050>you <00:22:22.225>have <00:22:22.400>to <00:22:22.575>smile <00:22:22.750>for <00:22:22.925>the <00:22:23.100>first <00:22:23.275>load.

494
00:22:24.355 --> 00:22:28.335
<00:22:24.355>You <00:22:24.555>can <00:22:24.755>gain <00:22:24.955>this <00:22:25.155>navigation <00:22:25.355>performance <00:22:25.555>boasted <00:22:25.755>without

495
00:22:28.335 --> 00:22:31.095
<00:22:28.335>doing <00:22:28.510>anything <00:22:28.685>just <00:22:28.860>with <00:22:29.035>the <00:22:29.210>small <00:22:29.385>script <00:22:29.560>of <00:22:29.735>speculation.

496
00:22:32.155 --> 00:22:34.695
<00:22:32.155>So <00:22:32.282>how <00:22:32.409>can <00:22:32.536>I <00:22:32.664>prove <00:22:32.791>that <00:22:32.918>this <00:22:33.045>can <00:22:33.173>be <00:22:33.300>done <00:22:33.427>in <00:22:33.555>anything?

497
00:22:35.215 --> 00:22:36.215
<00:22:35.215>I <00:22:35.439>would <00:22:35.665>go <00:22:35.889>with <00:22:36.115>anything.

498
00:22:36.395 --> 00:22:41.085
<00:22:36.395>For <00:22:36.745>example, <00:22:37.095>PVC, <00:22:37.445>uh, <00:22:37.795>I,

499
00:22:44.395 --> 00:22:46.745
<00:22:44.395>sorry, <00:22:44.675>I <00:22:44.955>am, <00:22:45.235>uh, <00:22:45.514>writing <00:22:45.795>remotely.

500
00:22:46.965 --> 00:22:50.865
<00:22:46.965>So <00:22:47.139>PBC <00:22:47.314>news <00:22:47.490>for <00:22:47.665>example. <00:22:47.840>Oh, <00:22:48.014>what <00:22:48.189>is <00:22:48.365>wrong?

501
00:22:52.845 --> 00:22:55.875
<00:22:52.845>There <00:22:53.078>you <00:22:53.311>go. <00:22:53.545>So <00:22:53.778>we <00:22:54.011>have <00:22:54.245>PBC,

502
00:22:56.185 --> 00:22:57.915
<00:22:56.185>okay, <00:22:56.651>has <00:22:57.118>different <00:22:57.585>news.

503
00:22:58.375 --> 00:23:00.115
<00:22:58.375>If <00:22:58.575>I <00:22:58.775>click <00:22:58.975>on <00:22:59.175>any <00:22:59.375>of <00:22:59.575>the <00:22:59.775>links

504
00:23:00.935 --> 00:23:03.635
<00:23:00.935>and <00:23:01.090>open <00:23:01.246>the <00:23:01.401>performance <00:23:01.557>tab, <00:23:01.712>you'll <00:23:01.868>find <00:23:02.023>it <00:23:02.179>takes <00:23:02.335>like

505
00:23:04.175 --> 00:23:06.675
<00:23:04.175>240 <00:23:04.455>millisecond, <00:23:04.735>which <00:23:05.014>is <00:23:05.294>good, <00:23:05.575>right?

506
00:23:06.975 --> 00:23:09.355
<00:23:06.975>Can <00:23:07.149>it, <00:23:07.324>can <00:23:07.500>it <00:23:07.675>be <00:23:07.850>better? <00:23:08.024>Yes, <00:23:08.199>it <00:23:08.375>can.

507
00:23:09.575 --> 00:23:12.115
<00:23:09.575>So <00:23:09.702>what <00:23:09.829>I <00:23:09.956>can <00:23:10.084>do <00:23:10.211>and <00:23:10.338>what <00:23:10.465>you <00:23:10.593>can <00:23:10.720>do <00:23:10.847>as <00:23:10.975>well

508
00:23:12.655 --> 00:23:14.675
<00:23:12.655>is <00:23:12.810>let <00:23:12.966>me <00:23:13.121>just <00:23:13.277>go <00:23:13.432>back <00:23:13.588>to <00:23:13.743>the <00:23:13.899>newest <00:23:14.055>page.

509
00:23:15.515 --> 00:23:20.435
<00:23:15.515>I <00:23:15.631>can <00:23:15.748>just <00:23:15.865>and <00:23:15.981>inspect <00:23:16.098>this <00:23:16.215>one <00:23:16.331>and <00:23:16.448>go <00:23:16.565>find <00:23:16.681>the <00:23:16.798>uur <00:23:16.915>L

510
00:23:20.495 --> 00:23:23.955
<00:23:20.495>and <00:23:20.650>you'll <00:23:20.806>find <00:23:20.961>that <00:23:21.117>here <00:23:21.272>is <00:23:21.428>the <00:23:21.583>URL <00:23:21.739>it <00:23:21.895>start

511
00:23:23.955 --> 00:23:25.675
<00:23:23.955>with <00:23:24.235>slash <00:23:24.514>news <00:23:24.794>slash <00:23:25.074>articles, <00:23:25.355>right?

512
00:23:25.995 --> 00:23:27.435
<00:23:25.995>I <00:23:26.254>would <00:23:26.513>say <00:23:26.772>slash <00:23:27.031>news, <00:23:27.291>anything

513
00:23:27.435 --> 00:23:29.195
<00:23:27.435>with <00:23:27.668>slash <00:23:27.901>news <00:23:28.135>I'm <00:23:28.368>going <00:23:28.601>to <00:23:28.835>target.

514
00:23:29.505 --> 00:23:33.755
<00:23:29.505>Okay? <00:23:29.705>So <00:23:29.905>I <00:23:30.105>prepared <00:23:30.305>some <00:23:30.505>scripts <00:23:30.705>over <00:23:30.905>here

515
00:23:34.345 --> 00:23:36.475
<00:23:34.345>that <00:23:34.695>I'm <00:23:35.045>going <00:23:35.395>to <00:23:35.745>use.

516
00:23:37.815 --> 00:23:41.475
<00:23:37.815>So <00:23:37.955>what <00:23:38.095>I'm <00:23:38.235>going <00:23:38.375>to <00:23:38.515>do <00:23:38.655>is <00:23:38.795>go <00:23:38.935>into <00:23:39.075>the <00:23:39.215>console

517
00:23:42.685 --> 00:23:45.205
<00:23:42.685>clear <00:23:42.918>and <00:23:43.151>I'm <00:23:43.385>going <00:23:43.618>to <00:23:43.851>paste <00:23:44.085>it.

518
00:23:45.465 --> 00:23:47.125
<00:23:45.465>So <00:23:45.698>just <00:23:45.931>to <00:23:46.165>explain <00:23:46.398>what <00:23:46.631>is <00:23:46.865>that?

519
00:23:48.545 --> 00:23:50.805
<00:23:48.545>As <00:23:48.672>you <00:23:48.799>can <00:23:48.926>see, <00:23:49.054>it's <00:23:49.181>just <00:23:49.308>a <00:23:49.435>script <00:23:49.563>tag <00:23:49.690>that <00:23:49.817>we're <00:23:49.945>creating

520
00:23:50.805 --> 00:23:52.045
<00:23:50.805>with <00:23:51.363>JavaScript <00:23:51.921>dynamically.

521
00:23:52.305 --> 00:23:55.725
<00:23:52.305>And <00:23:52.445>it <00:23:52.585>does <00:23:52.725>have <00:23:52.865>um, <00:23:53.005>just <00:23:53.145>one <00:23:53.285>rule <00:23:53.425>pre <00:23:53.565>render, <00:23:53.705>anything

522
00:23:55.725 --> 00:23:57.245
<00:23:55.725>that <00:23:56.067>starts <00:23:56.408>with <00:23:56.751>slash <00:23:57.092>news.

523
00:23:57.245 --> 00:24:00.125
<00:23:57.245>This <00:23:57.372>our <00:23:57.499>target <00:23:57.626>and <00:23:57.754>it's <00:23:57.881>a <00:23:58.008>moderate <00:23:58.135>if <00:23:58.263>you <00:23:58.390>hover <00:23:58.517>over <00:23:58.645>it

524
00:24:00.125 --> 00:24:02.165
<00:24:00.125>for <00:24:00.358>200 <00:24:00.591>millisecond, <00:24:00.825>uh, <00:24:01.058>200 <00:24:01.291>millisecond, <00:24:01.525>okay?

525
00:24:02.785 --> 00:24:04.405
<00:24:02.785>That's <00:24:03.485>simply <00:24:04.185>it.

526
00:24:04.705 --> 00:24:07.405
<00:24:04.705>The <00:24:04.832>same <00:24:04.959>as <00:24:05.086>scripts <00:24:05.214>you <00:24:05.341>can <00:24:05.468>do <00:24:05.595>in <00:24:05.723>anything, <00:24:05.850>just <00:24:05.977>open <00:24:06.105>PVC

527
00:24:07.405 --> 00:24:09.805
<00:24:07.405>or <00:24:07.605>any <00:24:07.805>site <00:24:08.004>that <00:24:08.205>has <00:24:08.405>uh, <00:24:08.605>heavy <00:24:08.805>load.

528
00:24:10.585 --> 00:24:12.925
<00:24:10.585>If <00:24:10.785>I <00:24:10.985>click <00:24:11.185>here, <00:24:11.385>I <00:24:11.585>go <00:24:11.785>to <00:24:11.985>application

529
00:24:14.035 --> 00:24:16.655
<00:24:14.035>and <00:24:14.315>you <00:24:14.595>can <00:24:14.875>just <00:24:15.155>go <00:24:15.435>ahead

530
00:24:17.155 --> 00:24:20.895
<00:24:17.155>and <00:24:17.355>you <00:24:17.555>will <00:24:17.754>find <00:24:17.955>There <00:24:18.155>is <00:24:18.355>some <00:24:18.555>speculated

531
00:24:21.465 --> 00:24:23.975
<00:24:21.465>pages <00:24:21.745>already <00:24:22.024>waiting <00:24:22.304>to <00:24:22.584>be <00:24:22.865>triggered.

532
00:24:26.075 --> 00:24:30.135
<00:24:26.075>Before <00:24:26.250>doing <00:24:26.425>that, <00:24:26.600>I'm <00:24:26.775>going <00:24:26.950>to <00:24:27.125>just <00:24:27.300>empty <00:24:27.475>cache

533
00:24:30.195 --> 00:24:32.935
<00:24:30.195>and <00:24:30.350>harder <00:24:30.506>elude <00:24:30.661>to <00:24:30.817>see <00:24:30.972>the <00:24:31.128>performance <00:24:31.283>of <00:24:31.439>the <00:24:31.595>pages.

534
00:24:34.735 --> 00:24:38.715
<00:24:34.735>So <00:24:34.909>if <00:24:35.084>I <00:24:35.260>open <00:24:35.435>performance, <00:24:35.610>let's <00:24:35.784>see <00:24:35.959>this <00:24:36.135>link,

535
00:24:41.315 --> 00:24:45.575
<00:24:41.315>it <00:24:41.455>takes <00:24:41.595>two <00:24:41.735>seconds, <00:24:41.875>okay, <00:24:42.015>that's <00:24:42.155>same <00:24:42.295>two <00:24:42.435>legs <00:24:42.575>I'm <00:24:42.715>going

536
00:24:45.575 --> 00:24:48.495
<00:24:45.575>to <00:24:45.702>clear <00:24:45.829>because <00:24:45.956>now <00:24:46.084>B <00:24:46.211>of <00:24:46.338>Cache <00:24:46.465>is <00:24:46.593>going <00:24:46.720>to <00:24:46.847>cache <00:24:46.975>it,

537
00:24:48.495 --> 00:24:50.615
<00:24:48.495>but <00:24:48.622>I'm <00:24:48.749>going <00:24:48.876>to <00:24:49.004>clear <00:24:49.131>cache <00:24:49.258>as <00:24:49.385>if <00:24:49.513>we <00:24:49.640>are <00:24:49.767>clicking <00:24:49.895>it

538
00:24:50.615 --> 00:24:54.805
<00:24:50.615>for <00:24:50.742>the <00:24:50.869>first <00:24:50.996>time <00:24:51.124>and <00:24:51.251>I'm <00:24:51.378>going <00:24:51.505>to <00:24:51.633>go <00:24:51.760>to, <00:24:51.887>uh, <00:24:52.015>console

539
00:24:55.945 --> 00:24:59.125
<00:24:55.945>and <00:24:56.294>based <00:24:56.645>the <00:24:56.995>same <00:24:57.345>script.

540
00:24:59.265 --> 00:25:02.525
<00:24:59.265>So <00:24:59.465>we <00:24:59.665>just <00:24:59.865>created <00:25:00.065>speculation <00:25:00.265>to <00:25:00.465>go <00:25:00.665>here

541
00:25:03.185 --> 00:25:05.165
<00:25:03.185>to <00:25:03.385>see <00:25:03.585>if <00:25:03.784>there's <00:25:03.985>something <00:25:04.185>going <00:25:04.385>to <00:25:04.585>trigger.

542
00:25:05.845 --> 00:25:08.445
<00:25:05.845>I <00:25:06.045>hover <00:25:06.245>over <00:25:06.445>it, <00:25:06.645>I <00:25:06.845>believe <00:25:07.045>it's <00:25:07.245>somewhere.

543
00:25:08.625 --> 00:25:11.125
<00:25:08.625>Yes, <00:25:08.780>there <00:25:08.936>you <00:25:09.091>go. <00:25:09.247>This <00:25:09.402>is <00:25:09.558>the <00:25:09.713>one <00:25:09.869>it's <00:25:10.025>ready.

544
00:25:11.675 --> 00:25:14.565
<00:25:11.675>When <00:25:11.850>I <00:25:12.024>click <00:25:12.200>on <00:25:12.375>it <00:25:12.550>now <00:25:12.725>I <00:25:12.899>can <00:25:13.075>see

545
00:25:16.665 --> 00:25:19.555
<00:25:16.665>it's <00:25:16.945>a <00:25:17.225>hundred, <00:25:17.504>a <00:25:17.784>hundred <00:25:18.065>millisecond.

546
00:25:19.905 --> 00:25:21.155
<00:25:19.905>Okay? <00:25:20.186>This, <00:25:20.467>this <00:25:20.748>is <00:25:21.030>huge.

547
00:25:21.535 --> 00:25:23.315
<00:25:21.535>If <00:25:21.735>you <00:25:21.935>don't <00:25:22.135>feel <00:25:22.335>it <00:25:22.535>from <00:25:22.735>two <00:25:22.935>seconds

548
00:25:23.655 --> 00:25:25.475
<00:25:23.655>to <00:25:23.888>a <00:25:24.121>hundred <00:25:24.355>millisecond, <00:25:24.588>this <00:25:24.821>is <00:25:25.055>huge

549
00:25:25.815 --> 00:25:27.955
<00:25:25.815>and <00:25:26.015>this <00:25:26.215>is <00:25:26.415>only <00:25:26.615>happening <00:25:26.815>in <00:25:27.015>your, <00:25:27.215>uh,

550
00:25:28.005 --> 00:25:29.435
<00:25:28.005>navigation <00:25:28.648>between <00:25:29.292>pages.

551
00:25:30.615 --> 00:25:33.035
<00:25:30.615>What's <00:25:30.742>so <00:25:30.869>cool <00:25:30.996>about <00:25:31.124>that, <00:25:31.251>that <00:25:31.378>you <00:25:31.505>don't <00:25:31.633>have <00:25:31.760>to <00:25:31.887>learn <00:25:32.015>it,

552
00:25:33.035 --> 00:25:34.395
<00:25:33.035>you <00:25:33.341>don't <00:25:33.647>have <00:25:33.953>to <00:25:34.259>stay

553
00:25:34.455 --> 00:25:36.835
<00:25:34.455>for <00:25:34.655>long <00:25:34.855>time <00:25:35.054>see <00:25:35.254>tutorials <00:25:35.455>or <00:25:35.655>do <00:25:35.855>things.

554
00:25:36.975 --> 00:25:39.195
<00:25:36.975>You <00:25:37.208>just <00:25:37.441>copy <00:25:37.675>this <00:25:37.908>script <00:25:38.141>through <00:25:38.375>it,

555
00:25:39.265 --> 00:25:40.715
<00:25:39.265>find <00:25:39.482>out <00:25:39.700>which <00:25:39.917>link <00:25:40.135>you <00:25:40.352>would <00:25:40.570>like

556
00:25:40.715 --> 00:25:42.155
<00:25:40.715>to <00:25:40.974>speculate, <00:25:41.233>and <00:25:41.492>there <00:25:41.751>you <00:25:42.011>go.

557
00:25:42.335 --> 00:25:44.395
<00:25:42.335>You <00:25:42.475>can <00:25:42.615>test <00:25:42.755>it <00:25:42.895>and <00:25:43.035>then <00:25:43.175>you <00:25:43.315>create <00:25:43.455>the <00:25:43.595>PR <00:25:43.735>later

558
00:25:46.425 --> 00:25:47.675
<00:25:46.425>Back <00:25:46.800>to <00:25:47.175>the <00:25:47.550>presentation.

559
00:25:55.475 --> 00:25:56.535
<00:25:55.475>As <00:25:55.634>we <00:25:55.793>have <00:25:55.952>seen <00:25:56.111>in <00:25:56.270>the <00:25:56.429>demo,

560
00:25:57.275 --> 00:26:00.015
<00:25:57.275>we <00:25:57.415>have <00:25:57.555>the <00:25:57.695>diff <00:25:57.835>tools <00:25:57.975>ready <00:25:58.115>for <00:25:58.255>you <00:25:58.395>to <00:25:58.535>be <00:25:58.675>used.

561
00:26:01.275 --> 00:26:04.415
<00:26:01.275>It <00:26:01.475>has <00:26:01.675>three <00:26:01.875>things. <00:26:02.075>Application <00:26:02.275>tab <00:26:02.475>has <00:26:02.675>rules

562
00:26:04.525 --> 00:26:06.335
<00:26:04.525>that <00:26:04.758>you <00:26:04.991>can <00:26:05.225>browse <00:26:05.458>for <00:26:05.691>any <00:26:05.925>page.

563
00:26:06.635 --> 00:26:08.015
<00:26:06.635>It <00:26:07.049>has <00:26:07.463>also <00:26:07.877>speculations

564
00:26:08.355 --> 00:26:11.655
<00:26:08.355>and <00:26:08.588>also <00:26:08.821>you <00:26:09.055>have <00:26:09.288>every <00:26:09.521>speculated <00:26:09.755>page

565
00:26:11.915 --> 00:26:13.975
<00:26:11.915>to <00:26:12.148>be <00:26:12.381>in <00:26:12.615>a <00:26:12.848>different <00:26:13.081>diff <00:26:13.315>tool.

566
00:26:14.035 --> 00:26:15.935
<00:26:14.035>So <00:26:14.235>you <00:26:14.435>can <00:26:14.635>debug <00:26:14.835>it <00:26:15.035>ahead <00:26:15.235>of <00:26:15.435>time

567
00:26:16.315 --> 00:26:18.735
<00:26:16.315>and <00:26:16.470>find <00:26:16.626>out <00:26:16.781>what <00:26:16.937>is <00:26:17.092>looted, <00:26:17.248>what <00:26:17.403>is <00:26:17.559>not <00:26:17.715>looted.

568
00:26:18.735 --> 00:26:20.455
<00:26:18.735>Because <00:26:19.014>some <00:26:19.294>scripts <00:26:19.574>actually <00:26:19.854>you <00:26:20.135>might

569
00:26:20.455 --> 00:26:22.055
<00:26:20.455>have <00:26:21.155>targeted <00:26:21.855>incorrectly.

570
00:26:22.315 --> 00:26:23.975
<00:26:22.315>You <00:26:22.595>might <00:26:22.875>target <00:26:23.155>everything <00:26:23.435>slash <00:26:23.715>news,

571
00:26:24.195 --> 00:26:25.735
<00:26:24.195>but <00:26:24.426>you <00:26:24.657>would <00:26:24.888>like <00:26:25.119>not <00:26:25.350>to <00:26:25.581>target,

572
00:26:25.795 --> 00:26:27.255
<00:26:25.795>for <00:26:26.123>example, <00:26:26.452>news <00:26:26.780>from <00:26:27.109>sports.

573
00:26:27.915 --> 00:26:32.015
<00:26:27.915>So <00:26:28.042>you <00:26:28.169>have <00:26:28.296>to <00:26:28.424>add <00:26:28.551>in <00:26:28.678>the <00:26:28.805>targeting <00:26:28.933>not <00:26:29.060>to <00:26:29.187>include <00:26:29.315>sports.

574
00:26:32.115 --> 00:26:34.375
<00:26:32.115>And <00:26:32.255>there <00:26:32.395>you <00:26:32.535>go. <00:26:32.675>So <00:26:32.815>you <00:26:32.955>can <00:26:33.095>debug <00:26:33.235>it <00:26:33.375>using <00:26:33.515>this

575
00:26:34.755 --> 00:26:35.975
<00:26:34.755>uh, <00:26:35.304>dropdown <00:26:35.852>menu.

576
00:26:36.235 --> 00:26:38.215
<00:26:36.235>Uh, <00:26:36.375>you <00:26:36.514>have <00:26:36.655>in <00:26:36.794>the <00:26:36.935>side <00:26:37.074>in <00:26:37.215>the <00:26:37.354>right <00:26:37.495>hand <00:26:37.635>side,

577
00:26:39.475 --> 00:26:41.855
<00:26:39.475>but <00:26:39.630>I <00:26:39.786>have <00:26:39.941>to <00:26:40.097>warn <00:26:40.252>you, <00:26:40.408>this <00:26:40.563>is <00:26:40.719>only <00:26:40.875>available

578
00:26:41.875 --> 00:26:45.765
<00:26:41.875>for <00:26:42.050>commun <00:26:42.225>based, <00:26:42.400>uh, <00:26:42.575>browsers, <00:26:42.750>which <00:26:42.925>means <00:26:43.100>that <00:26:43.275>Firefox

579
00:26:46.145 --> 00:26:48.605
<00:26:46.145>and <00:26:46.345>Safari <00:26:46.545>are <00:26:46.745>not <00:26:46.945>really <00:26:47.145>ready <00:26:47.345>for <00:26:47.545>that.

580
00:26:48.945 --> 00:26:50.325
<00:26:48.945>But <00:26:49.152>this <00:26:49.359>is <00:26:49.566>not <00:26:49.773>really <00:26:49.980>bad <00:26:50.187>news

581
00:26:50.325 --> 00:26:53.125
<00:26:50.325>because <00:26:50.525>like <00:26:50.725>more <00:26:50.925>than <00:26:51.125>70% <00:26:51.325>of <00:26:51.525>the <00:26:51.725>population

582
00:26:53.125 --> 00:26:55.485
<00:26:53.125>of <00:26:53.325>the <00:26:53.525>internet <00:26:53.725>are <00:26:53.925>using <00:26:54.125>commun <00:26:54.325>based <00:26:54.525>browsers.

583
00:26:55.785 --> 00:26:58.685
<00:26:55.785>So <00:26:55.925>I'm <00:26:56.065>not <00:26:56.205>saying <00:26:56.345>that <00:26:56.485>you <00:26:56.625>can <00:26:56.765>ignore <00:26:56.905>Firefox <00:26:57.045>and <00:26:57.185>Safari,

584
00:26:58.705 --> 00:27:02.125
<00:26:58.705>but <00:26:58.832>you <00:26:58.959>can <00:26:59.086>use <00:26:59.214>that <00:26:59.341>as <00:26:59.468>if <00:26:59.595>it <00:26:59.723>is <00:26:59.850>a <00:26:59.977>progressive <00:27:00.105>enhancement

585
00:27:02.145 --> 00:27:04.685
<00:27:02.145>for <00:27:02.320>your <00:27:02.495>users <00:27:02.670>if <00:27:02.845>you <00:27:03.020>are <00:27:03.195>using <00:27:03.370>any <00:27:03.545>browser

586
00:27:04.715 --> 00:27:05.765
<00:27:04.715>that <00:27:05.030>is <00:27:05.345>supporting <00:27:05.660>that.

587
00:27:05.935 --> 00:27:09.405
<00:27:05.935>There <00:27:06.075>you <00:27:06.215>go. <00:27:06.355>If <00:27:06.495>you <00:27:06.635>are <00:27:06.774>not <00:27:06.915>fine, <00:27:07.054>this <00:27:07.195>uh, <00:27:07.335>script,

588
00:27:09.505 --> 00:27:10.725
<00:27:09.505>I'm <00:27:09.688>not <00:27:09.871>going <00:27:10.054>to <00:27:10.237>ship <00:27:10.420>to <00:27:10.602>anyone

589
00:27:10.865 --> 00:27:12.925
<00:27:10.865>who <00:27:11.098>doesn't <00:27:11.331>have <00:27:11.565>uh, <00:27:11.798>uh, <00:27:12.031>a <00:27:12.265>support.

590
00:27:13.185 --> 00:27:15.565
<00:27:13.185>But <00:27:13.340>the <00:27:13.496>good <00:27:13.651>news <00:27:13.807>is <00:27:13.962>that <00:27:14.118>Safari <00:27:14.273>has <00:27:14.429>some <00:27:14.585>signals

591
00:27:15.565 --> 00:27:17.245
<00:27:15.565>that <00:27:15.798>this <00:27:16.031>is <00:27:16.265>going <00:27:16.498>to <00:27:16.731>be <00:27:16.965>implemented.

592
00:27:17.595 --> 00:27:20.005
<00:27:17.595>Part <00:27:17.828>folks <00:27:18.061>is <00:27:18.295>not <00:27:18.528>showing <00:27:18.761>signals <00:27:18.995>yet

593
00:27:20.705 --> 00:27:22.565
<00:27:20.705>and <00:27:20.985>that's <00:27:21.264>funny <00:27:21.544>enough <00:27:21.824>that <00:27:22.105>Safari

594
00:27:22.565 --> 00:27:23.805
<00:27:22.565>started <00:27:22.937>that <00:27:23.309>before <00:27:23.681>Firefox.

595
00:27:25.985 --> 00:27:27.285
<00:27:25.985>So <00:27:26.179>it <00:27:26.375>might <00:27:26.570>come <00:27:26.765>to <00:27:26.960>your <00:27:27.155>mind.

596
00:27:27.395 --> 00:27:30.405
<00:27:27.395>Alright, <00:27:27.628>can <00:27:27.861>I <00:27:28.095>pre-render <00:27:28.328>all <00:27:28.561>links <00:27:28.795>please?

597
00:27:30.825 --> 00:27:35.205
<00:27:30.825>So <00:27:30.952>users <00:27:31.079>would <00:27:31.206>be <00:27:31.334>so <00:27:31.461>happy. <00:27:31.588>Hashtag <00:27:31.715>yolo. <00:27:31.843>Can <00:27:31.970>I <00:27:32.097>do <00:27:32.225>that?

598
00:27:36.505 --> 00:27:38.815
<00:27:36.505>Short <00:27:36.971>answer <00:27:37.438>is <00:27:37.905>no,

599
00:27:39.675 --> 00:27:41.655
<00:27:39.675>you <00:27:39.955>should <00:27:40.235>not <00:27:40.514>and <00:27:40.794>you <00:27:41.075>cannot.

600
00:27:43.105 --> 00:27:46.125
<00:27:43.105>That's <00:27:43.245>because <00:27:43.385>I <00:27:43.525>will <00:27:43.665>start <00:27:43.805>with <00:27:43.945>why <00:27:44.085>you <00:27:44.225>cannot <00:27:44.365>do <00:27:44.505>that.

601
00:27:46.545 --> 00:27:49.965
<00:27:46.545>So <00:27:46.720>actually <00:27:46.895>Chrome <00:27:47.070>comes <00:27:47.245>with <00:27:47.420>some <00:27:47.595>limitations <00:27:47.770>for <00:27:47.945>that.

602
00:27:50.185 --> 00:27:53.285
<00:27:50.185>Uh, <00:27:50.465>API <00:27:50.745>it <00:27:51.024>doesn't <00:27:51.304>speculate <00:27:51.585>pages.

603
00:27:53.345 --> 00:27:54.885
<00:27:53.345>If <00:27:53.622>the <00:27:53.899>user <00:27:54.176>enable <00:27:54.453>save <00:27:54.731>data,

604
00:27:55.385 --> 00:27:56.925
<00:27:55.385>if <00:27:55.583>the <00:27:55.781>user <00:27:55.979>enable <00:27:56.177>that <00:27:56.375>in <00:27:56.572>their <00:27:56.771>phones.

605
00:27:57.065 --> 00:27:58.485
<00:27:57.065>So <00:27:57.320>we're <00:27:57.576>not <00:27:57.831>going <00:27:58.087>to <00:27:58.342>speculate

606
00:27:58.485 --> 00:28:00.925
<00:27:58.485>because <00:27:58.718>these, <00:27:58.951>uh, <00:27:59.185>stuff <00:27:59.418>are, <00:27:59.651>are <00:27:59.885>going

607
00:28:00.925 --> 00:28:02.525
<00:28:00.925>to <00:28:01.205>be <00:28:01.485>loaded <00:28:01.764>in <00:28:02.044>the <00:28:02.325>background.

608
00:28:02.665 --> 00:28:04.925
<00:28:02.665>So <00:28:02.805>you <00:28:02.945>are <00:28:03.085>utilizing <00:28:03.225>a <00:28:03.365>lot <00:28:03.504>of <00:28:03.645>the <00:28:03.784>resources, <00:28:03.925>a <00:28:04.065>lot

609
00:28:04.925 --> 00:28:07.765
<00:28:04.925>of <00:28:05.065>the <00:28:05.205>internet <00:28:05.345>bandwidth <00:28:05.485>for <00:28:05.625>the <00:28:05.764>user <00:28:05.905>that <00:28:06.044>you <00:28:06.185>don't <00:28:06.325>want.

610
00:28:07.865 --> 00:28:10.405
<00:28:07.865>If <00:28:08.065>they <00:28:08.265>say <00:28:08.465>save <00:28:08.665>data, <00:28:08.865>it's <00:28:09.065>their <00:28:09.265>tool

611
00:28:10.625 --> 00:28:11.965
<00:28:10.625>to <00:28:10.866>load <00:28:11.107>things <00:28:11.348>ahead <00:28:11.589>or <00:28:11.831>not.

612
00:28:13.175 --> 00:28:14.885
<00:28:13.175>Pages <00:28:13.455>are <00:28:13.735>opened <00:28:14.014>in <00:28:14.294>the <00:28:14.575>background.

613
00:28:14.985 --> 00:28:18.125
<00:28:14.985>If <00:28:15.125>you <00:28:15.264>open <00:28:15.405>tabs <00:28:15.544>but <00:28:15.685>you <00:28:15.824>are <00:28:15.965>not <00:28:16.104>activating <00:28:16.245>this <00:28:16.385>tab,

614
00:28:18.475 --> 00:28:21.045
<00:28:18.475>this <00:28:18.675>means <00:28:18.875>that <00:28:19.074>no, <00:28:19.274>we're <00:28:19.475>not <00:28:19.675>speculating <00:28:19.875>that.

615
00:28:21.105 --> 00:28:23.445
<00:28:21.105>Now <00:28:21.232>we <00:28:21.359>are <00:28:21.486>incepting <00:28:21.614>a <00:28:21.741>page <00:28:21.868>inside <00:28:21.995>the <00:28:22.123>page <00:28:22.250>inside <00:28:22.377>the <00:28:22.505>page.

616
00:28:23.455 --> 00:28:27.085
<00:28:23.455>We're <00:28:23.582>not <00:28:23.709>going <00:28:23.836>to <00:28:23.964>do <00:28:24.091>that <00:28:24.218>if <00:28:24.345>the <00:28:24.473>user <00:28:24.600>enables <00:28:24.727>save, <00:28:24.855>uh,

617
00:28:27.105 --> 00:28:29.085
<00:28:27.105>or <00:28:27.338>uh, <00:28:27.571>save <00:28:27.805>energy <00:28:28.038>or <00:28:28.271>energy <00:28:28.505>saver.

618
00:28:29.745 --> 00:28:31.605
<00:28:29.745>Uh, <00:28:29.978>also <00:28:30.211>this <00:28:30.445>is <00:28:30.678>using <00:28:30.911>some <00:28:31.145>battery

619
00:28:32.045 --> 00:28:33.405
<00:28:32.045>'cause <00:28:32.181>it's <00:28:32.317>running <00:28:32.453>a <00:28:32.589>lot <00:28:32.725>of <00:28:32.861>things <00:28:32.997>in <00:28:33.133>the <00:28:33.269>background.

620
00:28:33.745 --> 00:28:36.485
<00:28:33.745>Who <00:28:33.945>Chrome <00:28:34.145>is <00:28:34.344>going <00:28:34.544>to <00:28:34.745>just <00:28:34.945>ignore <00:28:35.145>speculation.

621
00:28:36.485 --> 00:28:38.565
<00:28:36.485>In <00:28:36.659>this <00:28:36.834>case, <00:28:37.010>if <00:28:37.185>you <00:28:37.360>have <00:28:37.534>any <00:28:37.709>ad <00:28:37.885>blocker,

622
00:28:38.715 --> 00:28:42.125
<00:28:38.715>this <00:28:38.855>ad <00:28:38.995>blocker <00:28:39.135>is <00:28:39.274>going <00:28:39.415>to, <00:28:39.554>uh, <00:28:39.695>and <00:28:39.834>you <00:28:39.975>en <00:28:40.115>enable

623
00:28:42.385 --> 00:28:44.845
<00:28:42.385>or <00:28:42.585>disable <00:28:42.785>pre <00:28:42.985>rendering <00:28:43.185>in <00:28:43.385>the <00:28:43.585>ad <00:28:43.785>blocker.

624
00:28:45.015 --> 00:28:47.325
<00:28:45.015>There <00:28:45.142>you <00:28:45.269>go. <00:28:45.396>Chrome <00:28:45.524>as <00:28:45.651>well <00:28:45.778>is <00:28:45.905>going <00:28:46.033>to <00:28:46.160>listen <00:28:46.287>to <00:28:46.415>that.

625
00:28:47.625 --> 00:28:48.645
<00:28:47.625>Memory <00:28:48.543>constraints.

626
00:28:49.225 --> 00:28:50.965
<00:28:49.225>You <00:28:49.458>have <00:28:49.691>limits <00:28:49.925>in <00:28:50.158>your <00:28:50.391>chrome <00:28:50.625>memory

627
00:28:51.105 --> 00:28:52.645
<00:28:51.105>or <00:28:51.382>your <00:28:51.659>browser <00:28:51.936>memory <00:28:52.213>in <00:28:52.491>general.

628
00:28:52.785 --> 00:28:53.885
<00:28:52.785>If <00:28:53.032>this <00:28:53.280>memory <00:28:53.527>is <00:28:53.775>full

629
00:28:54.385 --> 00:28:56.085
<00:28:54.385>and <00:28:54.618>you <00:28:54.851>are <00:28:55.085>speculating <00:28:55.318>a <00:28:55.551>bigger <00:28:55.785>page,

630
00:28:56.375 --> 00:28:57.565
<00:28:56.375>it'll <00:28:56.732>try <00:28:57.089>to <00:28:57.446>speculate.

631
00:28:57.565 --> 00:28:59.965
<00:28:57.565>However, <00:28:57.798>we <00:28:58.031>find <00:28:58.265>some <00:28:58.498>constraints <00:28:58.731>in <00:28:58.965>memory.

632
00:29:00.265 --> 00:29:02.045
<00:29:00.265>All <00:29:00.440>right, <00:29:00.615>we <00:29:00.790>stop. <00:29:00.965>We're <00:29:01.140>not <00:29:01.315>going <00:29:01.490>to <00:29:01.665>speculate

633
00:29:02.045 --> 00:29:03.445
<00:29:02.045>that <00:29:02.255>Chrome <00:29:02.465>will <00:29:02.675>do <00:29:02.885>that <00:29:03.095>for <00:29:03.304>you.

634
00:29:04.185 --> 00:29:06.725
<00:29:04.185>And <00:29:04.360>finally, <00:29:04.534>if <00:29:04.710>you <00:29:04.885>have <00:29:05.060>gross <00:29:05.235>origin <00:29:05.409>eye <00:29:05.585>frames,

635
00:29:06.975 --> 00:29:10.965
<00:29:06.975>these <00:29:07.149>six <00:29:07.324>cases <00:29:07.500>chrome <00:29:07.675>prevent <00:29:07.850>speculations <00:29:08.024>in <00:29:08.199>these <00:29:08.375>cases,

636
00:29:11.445 --> 00:29:14.445
<00:29:11.445>regardless <00:29:11.620>of <00:29:11.794>your <00:29:11.970>target, <00:29:12.145>regardless <00:29:12.320>of <00:29:12.495>your <00:29:12.669>uh, <00:29:12.845>uh,

637
00:29:14.905 --> 00:29:16.005
<00:29:14.905>action <00:29:15.235>and <00:29:15.565>so <00:29:15.895>on.

638
00:29:17.425 --> 00:29:19.565
<00:29:17.425>But <00:29:17.600>there <00:29:17.774>is <00:29:17.950>some <00:29:18.125>stuff <00:29:18.300>that <00:29:18.475>you <00:29:18.649>should <00:29:18.825>not,

639
00:29:19.635 --> 00:29:21.485
<00:29:19.635>technically <00:29:19.868>you <00:29:20.101>can, <00:29:20.335>but <00:29:20.568>you <00:29:20.801>should <00:29:21.035>not.

640
00:29:21.855 --> 00:29:23.805
<00:29:21.855>First <00:29:22.135>one, <00:29:22.415>sign <00:29:22.695>out <00:29:22.975>URLs, <00:29:23.255>imagine

641
00:29:23.805 --> 00:29:25.765
<00:29:23.805>that <00:29:24.005>the <00:29:24.205>user <00:29:24.405>is <00:29:24.605>navigating <00:29:24.805>to <00:29:25.005>another <00:29:25.205>page

642
00:29:25.785 --> 00:29:27.045
<00:29:25.785>and <00:29:26.068>you <00:29:26.352>sign <00:29:26.635>them <00:29:26.919>out.

643
00:29:27.045 --> 00:29:28.445
<00:29:27.045>You <00:29:27.255>just <00:29:27.465>hoover <00:29:27.675>over <00:29:27.885>the <00:29:28.095>sign <00:29:28.304>out.

644
00:29:28.765 --> 00:29:31.125
<00:29:28.765>I <00:29:28.920>didn't <00:29:29.076>sign <00:29:29.231>out, <00:29:29.387>but <00:29:29.542>there <00:29:29.698>you <00:29:29.853>go. <00:29:30.009>You're <00:29:30.165>out.

645
00:29:31.585 --> 00:29:34.445
<00:29:31.585>No, <00:29:31.725>you <00:29:31.865>should <00:29:32.005>not, <00:29:32.145>but <00:29:32.285>you <00:29:32.425>can, <00:29:32.565>but <00:29:32.705>you <00:29:32.845>should <00:29:32.985>not.

646
00:29:35.665 --> 00:29:38.205
<00:29:35.665>Um, <00:29:35.898>sign <00:29:36.131>influence <00:29:36.365>that <00:29:36.598>has <00:29:36.831>like, <00:29:37.065>uh,

647
00:29:38.345 --> 00:29:39.405
<00:29:38.345>two <00:29:38.822>factor <00:29:39.299>syndication.

648
00:29:39.675 --> 00:29:41.725
<00:29:39.675>Imagine <00:29:40.024>you're <00:29:40.375>hovering <00:29:40.725>over <00:29:41.075>something

649
00:29:41.945 --> 00:29:44.445
<00:29:41.945>and <00:29:42.120>if <00:29:42.294>collect <00:29:42.470>it'll <00:29:42.645>send <00:29:42.820>the <00:29:42.995>SMS <00:29:43.169>or <00:29:43.345>something.

650
00:29:44.775 --> 00:29:46.525
<00:29:44.775>Don't <00:29:45.241>speculate <00:29:45.708>that, <00:29:46.175>right?

651
00:29:46.795 --> 00:29:49.645
<00:29:46.795>Another <00:29:46.995>one <00:29:47.195>language <00:29:47.395>switcher, <00:29:47.595>one <00:29:47.795>page <00:29:47.995>in <00:29:48.195>Germany,

652
00:29:50.145 --> 00:29:51.325
<00:29:50.145>uh, <00:29:50.410>one <00:29:50.676>page <00:29:50.941>in <00:29:51.207>Chinese.

653
00:29:51.745 --> 00:29:53.485
<00:29:51.745>No, <00:29:52.024>you <00:29:52.304>don't <00:29:52.584>do <00:29:52.864>that. <00:29:53.145>Okay?

654
00:29:53.605 --> 00:29:55.805
<00:29:53.605>I <00:29:53.745>hover <00:29:53.885>over <00:29:54.025>Chinese, <00:29:54.165>but <00:29:54.305>doesn't <00:29:54.445>mean <00:29:54.585>that <00:29:54.725>I <00:29:54.865>would <00:29:55.005>like

655
00:29:55.805 --> 00:29:57.725
<00:29:55.805>to <00:29:56.038>be, <00:29:56.271>uh, <00:29:56.505>my <00:29:56.738>site <00:29:56.971>in <00:29:57.205>Chinese.

656
00:29:57.855 --> 00:30:02.645
<00:29:57.855>Don't <00:29:58.010>do <00:29:58.166>that. <00:29:58.321>Uh, <00:29:58.477>URLs <00:29:58.632>that <00:29:58.788>is <00:29:58.943>giving <00:29:59.099>some <00:29:59.255>um,

657
00:30:03.025 --> 00:30:05.725
<00:30:03.025>uh, <00:30:03.225>like, <00:30:03.425>uh, <00:30:03.625>gamification <00:30:03.825>in, <00:30:04.025>in <00:30:04.225>your <00:30:04.425>page,

658
00:30:05.725 --> 00:30:07.925
<00:30:05.725>giving <00:30:05.899>some <00:30:06.074>coins <00:30:06.250>or <00:30:06.425>some <00:30:06.600>points <00:30:06.774>for <00:30:06.949>the <00:30:07.125>user.

659
00:30:08.175 --> 00:30:10.165
<00:30:08.175>Don't <00:30:08.524>also <00:30:08.875>speculate <00:30:09.225>that <00:30:09.575>add

660
00:30:10.165 --> 00:30:11.885
<00:30:10.165>to <00:30:10.365>cart <00:30:10.565>URLs, <00:30:10.764>don't <00:30:10.965>buy <00:30:11.165>for <00:30:11.365>the <00:30:11.565>user.

661
00:30:12.105 --> 00:30:16.715
<00:30:12.105>Let <00:30:12.245>them <00:30:12.385>do <00:30:12.525>that. <00:30:12.665>And <00:30:12.805>uh, <00:30:12.945>finally, <00:30:13.085>uh, <00:30:13.225>any <00:30:13.365>tracking <00:30:13.505>URLs,

662
00:30:16.745 --> 00:30:19.555
<00:30:16.745>this <00:30:16.900>is <00:30:17.056>not <00:30:17.211>recommended <00:30:17.367>because <00:30:17.522>this <00:30:17.678>will <00:30:17.833>give <00:30:17.989>you <00:30:18.145>false

663
00:30:19.995 --> 00:30:22.715
<00:30:19.995>tracking <00:30:20.228>records <00:30:20.461>for <00:30:20.695>your <00:30:20.928>analytics <00:30:21.161>or <00:30:21.395>anything.

664
00:30:22.985 --> 00:30:24.955
<00:30:22.985>This <00:30:23.185>one, <00:30:23.385>you <00:30:23.584>might <00:30:23.784>do <00:30:23.985>it <00:30:24.185>by <00:30:24.385>mistake.

665
00:30:24.965 --> 00:30:26.115
<00:30:24.965>Again, <00:30:25.223>you <00:30:25.482>need <00:30:25.741>to <00:30:26.000>debug

666
00:30:26.115 --> 00:30:28.715
<00:30:26.115>and <00:30:26.315>find <00:30:26.515>out <00:30:26.715>which <00:30:26.915>URL <00:30:27.115>is <00:30:27.315>being <00:30:27.515>speculated

667
00:30:28.895 --> 00:30:30.315
<00:30:28.895>and <00:30:29.150>is <00:30:29.406>it <00:30:29.661>really <00:30:29.917>the <00:30:30.173>thing

668
00:30:30.315 --> 00:30:31.595
<00:30:30.315>that <00:30:30.479>you <00:30:30.644>would <00:30:30.808>like <00:30:30.973>to <00:30:31.137>peculate <00:30:31.302>or <00:30:31.467>not.

669
00:30:31.935 --> 00:30:34.675
<00:30:31.935>If <00:30:32.075>it's <00:30:32.215>not, <00:30:32.355>just <00:30:32.495>go <00:30:32.635>ahead <00:30:32.774>and <00:30:32.915>remove <00:30:33.054>from <00:30:33.195>the <00:30:33.335>target.

670
00:30:36.135 --> 00:30:39.675
<00:30:36.135>You <00:30:36.275>can <00:30:36.415>find <00:30:36.555>this <00:30:36.695>out <00:30:36.835>by <00:30:36.975>opening <00:30:37.115>this <00:30:37.254>extra <00:30:37.395>dev <00:30:37.535>tools

671
00:30:39.675 --> 00:30:41.675
<00:30:39.675>that <00:30:39.875>is <00:30:40.075>happening <00:30:40.274>in <00:30:40.475>the <00:30:40.675>background <00:30:40.875>for <00:30:41.075>the,

672
00:30:42.415 --> 00:30:43.915
<00:30:42.415>for <00:30:42.865>the <00:30:43.315>speculated <00:30:43.764>batches.

673
00:30:44.215 --> 00:30:45.915
<00:30:44.215>And <00:30:44.495>you'll <00:30:44.774>find <00:30:45.054>in <00:30:45.334>the <00:30:45.615>hitters,

674
00:30:45.915 --> 00:30:48.155
<00:30:45.915>you'll <00:30:46.148>find <00:30:46.381>this <00:30:46.615>hitter <00:30:46.848>a <00:30:47.081>sick <00:30:47.315>purpose.

675
00:30:48.375 --> 00:30:50.235
<00:30:48.375>It <00:30:48.550>will <00:30:48.725>tell <00:30:48.900>you <00:30:49.075>prefetch <00:30:49.250>in <00:30:49.425>case <00:30:49.600>of <00:30:49.775>Prefetch

676
00:30:50.235 --> 00:30:51.915
<00:30:50.235>or <00:30:50.468>prefetch <00:30:50.701>pre-render <00:30:50.935>in <00:30:51.168>case <00:30:51.401>of <00:30:51.635>pre-render.

677
00:30:52.015 --> 00:30:54.155
<00:30:52.015>So <00:30:52.155>you <00:30:52.295>will <00:30:52.435>find <00:30:52.575>out, <00:30:52.715>all <00:30:52.855>right, <00:30:52.995>this <00:30:53.135>is <00:30:53.275>a <00:30:53.415>problem

678
00:30:54.225 --> 00:30:58.155
<00:30:54.225>that <00:30:54.365>we <00:30:54.504>are <00:30:54.645>gaining, <00:30:54.784>uh, <00:30:54.925>more <00:30:55.064>traction <00:30:55.205>for <00:30:55.344>the <00:30:55.485>links <00:30:55.625>than

679
00:30:58.155 --> 00:31:00.235
<00:30:58.155>before <00:30:58.435>because <00:30:58.715>we're <00:30:58.995>pre <00:30:59.274>rendering <00:30:59.555>things,

680
00:31:00.235 --> 00:31:02.035
<00:31:00.235>but <00:31:00.409>the <00:31:00.584>user <00:31:00.760>is <00:31:00.935>not <00:31:01.110>really <00:31:01.284>clicking <00:31:01.459>on <00:31:01.635>it.

681
00:31:04.575 --> 00:31:07.235
<00:31:04.575>So <00:31:04.750>you <00:31:04.925>might <00:31:05.100>think <00:31:05.275>that, <00:31:05.450>you <00:31:05.625>know, <00:31:05.800>it's <00:31:05.975>everywhere.

682
00:31:07.235 --> 00:31:09.675
<00:31:07.235>It's, <00:31:07.409>it's <00:31:07.584>pink <00:31:07.760>and <00:31:07.935>unicorns <00:31:08.110>and <00:31:08.284>everything <00:31:08.459>is <00:31:08.635>good.

683
00:31:09.705 --> 00:31:11.075
<00:31:09.705>Does <00:31:09.951>it <00:31:10.198>come <00:31:10.444>with <00:31:10.691>any <00:31:10.938>limitations?

684
00:31:11.255 --> 00:31:15.515
<00:31:11.255>Is <00:31:11.455>it <00:31:11.655>really <00:31:11.855>having <00:31:12.055>any <00:31:12.255>downsides? <00:31:12.455>It <00:31:12.655>has.

685
00:31:16.165 --> 00:31:17.915
<00:31:16.165>First <00:31:16.514>one <00:31:16.865>is <00:31:17.215>the <00:31:17.565>limitation.

686
00:31:17.985 --> 00:31:19.835
<00:31:17.985>It's <00:31:18.264>not <00:31:18.544>everywhere <00:31:18.824>for <00:31:19.104>your <00:31:19.385>browsers,

687
00:31:20.015 --> 00:31:21.315
<00:31:20.015>so <00:31:20.307>you <00:31:20.600>cannot <00:31:20.892>say <00:31:21.185>that.

688
00:31:21.315 --> 00:31:23.475
<00:31:21.315>Alright, <00:31:21.470>I'm <00:31:21.626>going <00:31:21.781>to <00:31:21.937>put <00:31:22.092>it <00:31:22.248>as <00:31:22.403>a <00:31:22.559>silver <00:31:22.715>palette

689
00:31:23.615 --> 00:31:24.755
<00:31:23.615>and <00:31:23.957>gain <00:31:24.299>it <00:31:24.641>everywhere.

690
00:31:24.905 --> 00:31:27.715
<00:31:24.905>Imagine <00:31:25.080>that <00:31:25.254>most <00:31:25.430>of <00:31:25.605>your <00:31:25.780>users <00:31:25.955>are <00:31:26.129>using <00:31:26.305>safari.

691
00:31:27.975 --> 00:31:29.515
<00:31:27.975>You <00:31:28.129>are <00:31:28.283>not <00:31:28.437>going <00:31:28.591>to <00:31:28.745>use <00:31:28.899>it, <00:31:29.053>you're <00:31:29.207>not <00:31:29.361>going

692
00:31:29.515 --> 00:31:30.715
<00:31:29.515>to <00:31:29.731>gain <00:31:29.947>a <00:31:30.163>lot <00:31:30.379>from <00:31:30.595>it.

693
00:31:31.055 --> 00:31:35.195
<00:31:31.055>So <00:31:31.210>this <00:31:31.366>limitation <00:31:31.521>for <00:31:31.677>now <00:31:31.832>is <00:31:31.988>something <00:31:32.143>that, <00:31:32.299>um, <00:31:32.455>uh,

694
00:31:35.515 --> 00:31:36.715
<00:31:35.515>I <00:31:35.731>find <00:31:35.947>it <00:31:36.163>as <00:31:36.379>a <00:31:36.595>downside.

695
00:31:37.465 --> 00:31:39.635
<00:31:37.465>Privacy <00:31:37.745>tracking. <00:31:38.024>Again, <00:31:38.304>the <00:31:38.584>same <00:31:38.865>thing.

696
00:31:39.815 --> 00:31:43.195
<00:31:39.815>If <00:31:39.990>you <00:31:40.165>have <00:31:40.340>any <00:31:40.515>links <00:31:40.690>that <00:31:40.865>is <00:31:41.040>incorrectly <00:31:41.215>targeted

697
00:31:43.575 --> 00:31:45.715
<00:31:43.575>and <00:31:43.775>this <00:31:43.975>is, <00:31:44.175>um, <00:31:44.375>making <00:31:44.575>problem <00:31:44.775>with <00:31:44.975>tracking,

698
00:31:45.785 --> 00:31:49.795
<00:31:45.785>this <00:31:45.912>is <00:31:46.039>a <00:31:46.166>downside <00:31:46.294>that <00:31:46.421>you <00:31:46.548>can <00:31:46.675>easily <00:31:46.803>do <00:31:46.930>this <00:31:47.057>mistake, <00:31:47.185>uh,

699
00:31:49.815 --> 00:31:51.235
<00:31:49.815>no <00:31:50.070>support <00:31:50.326>for <00:31:50.581>single <00:31:50.837>page <00:31:51.092>apps.

700
00:31:51.655 --> 00:31:53.715
<00:31:51.655>That's <00:31:51.855>actually <00:31:52.055>working <00:31:52.254>only <00:31:52.455>for <00:31:52.655>multi <00:31:52.855>page <00:31:53.055>apps.

701
00:31:53.855 --> 00:31:57.635
<00:31:53.855>But <00:31:53.995>yeah, <00:31:54.135>kind <00:31:54.275>of <00:31:54.415>who <00:31:54.555>is <00:31:54.695>using <00:31:54.835>single <00:31:54.975>page <00:31:55.115>apps <00:31:55.255>nowadays?

702
00:31:57.985 --> 00:32:00.115
<00:31:57.985>It's, <00:31:58.218>it's <00:31:58.451>something <00:31:58.685>that <00:31:58.918>in <00:31:59.151>the <00:31:59.385>past,

703
00:32:00.735 --> 00:32:03.515
<00:32:00.735>but <00:32:00.875>if <00:32:01.014>you <00:32:01.155>find <00:32:01.294>that <00:32:01.435>you <00:32:01.574>are <00:32:01.715>using <00:32:01.854>single <00:32:01.995>page <00:32:02.135>apps,

704
00:32:03.515 --> 00:32:05.635
<00:32:03.515>unfortunately <00:32:03.715>this <00:32:03.915>doesn't <00:32:04.115>work <00:32:04.315>for <00:32:04.515>it <00:32:04.715>for <00:32:04.915>now,

705
00:32:05.775 --> 00:32:07.795
<00:32:05.775>but <00:32:05.950>you <00:32:06.125>are <00:32:06.300>working <00:32:06.475>on <00:32:06.650>solutions <00:32:06.825>to <00:32:07.000>find <00:32:07.175>this,

706
00:32:07.855 --> 00:32:09.235
<00:32:07.855>uh, <00:32:08.062>solution <00:32:08.269>for <00:32:08.476>it <00:32:08.683>to <00:32:08.889>work <00:32:09.097>on.

707
00:32:09.235 --> 00:32:10.675
<00:32:09.235>Same <00:32:09.667>page <00:32:10.099>apps. <00:32:10.531>Finally,

708
00:32:10.815 --> 00:32:12.875
<00:32:10.815>and <00:32:11.095>most <00:32:11.375>importantly <00:32:11.655>is <00:32:11.935>the <00:32:12.215>resources.

709
00:32:13.255 --> 00:32:17.515
<00:32:13.255>You <00:32:13.395>might <00:32:13.535>look <00:32:13.675>something <00:32:13.815>that <00:32:13.955>is <00:32:14.095>wasted, <00:32:14.235>you <00:32:14.375>are <00:32:14.515>loading <00:32:14.655>it

710
00:32:17.535 --> 00:32:19.235
<00:32:17.535>and <00:32:17.815>user <00:32:18.095>never <00:32:18.375>think <00:32:18.655>about <00:32:18.935>it,

711
00:32:19.405 --> 00:32:22.155
<00:32:19.405>especially <00:32:19.605>if <00:32:19.805>you <00:32:20.004>have <00:32:20.205>this <00:32:20.405>eagerness <00:32:20.605>of <00:32:20.805>immediate,

712
00:32:22.815 --> 00:32:25.555
<00:32:22.815>in <00:32:22.955>most <00:32:23.095>cases <00:32:23.235>you <00:32:23.375>are <00:32:23.515>wasting <00:32:23.655>some <00:32:23.795>resources <00:32:23.935>for <00:32:24.075>the <00:32:24.215>user

713
00:32:26.225 --> 00:32:29.995
<00:32:26.225>bandwidth <00:32:26.458>memory <00:32:26.691>and <00:32:26.925>um, <00:32:27.158>of <00:32:27.391>course <00:32:27.625>CPUs.

714
00:32:30.975 --> 00:32:33.355
<00:32:30.975>But <00:32:31.149>for <00:32:31.324>this <00:32:31.500>one <00:32:31.675>in <00:32:31.850>particular, <00:32:32.024>I'm <00:32:32.199>handing <00:32:32.375>you

715
00:32:33.355 --> 00:32:34.915
<00:32:33.355>with <00:32:33.705>a <00:32:34.055>very <00:32:34.405>nice <00:32:34.755>solution.

716
00:32:35.025 --> 00:32:36.955
<00:32:35.025>It's <00:32:35.225>a <00:32:35.425>new <00:32:35.625>one <00:32:35.825>as <00:32:36.025>well, <00:32:36.225>relatively <00:32:36.425>new.

717
00:32:37.465 --> 00:32:39.075
<00:32:37.465>It's <00:32:37.931>called <00:32:38.398>dictionary <00:32:38.865>compression.

718
00:32:39.905 --> 00:32:42.805
<00:32:39.905>So <00:32:40.185>if <00:32:40.465>you <00:32:40.745>have <00:32:41.024>speculation <00:32:41.305>rules

719
00:32:42.985 --> 00:32:46.245
<00:32:42.985>and <00:32:43.125>you <00:32:43.264>started <00:32:43.405>feeling <00:32:43.544>that <00:32:43.685>you <00:32:43.824>are <00:32:43.965>shipping <00:32:44.104>quite <00:32:44.245>a <00:32:44.385>lot

720
00:32:46.245 --> 00:32:50.005
<00:32:46.245>of <00:32:46.372>things <00:32:46.499>and <00:32:46.626>you <00:32:46.754>are <00:32:46.881>hitting <00:32:47.008>server <00:32:47.135>a <00:32:47.263>lot <00:32:47.390>for <00:32:47.517>big <00:32:47.645>chunks

721
00:32:50.005 --> 00:32:53.525
<00:32:50.005>of <00:32:50.238>good <00:32:50.471>unnecessary <00:32:50.705>try <00:32:50.938>dictionary, <00:32:51.171>uh, <00:32:51.405>compression.

722
00:32:53.595 --> 00:32:58.285
<00:32:53.595>This <00:32:53.735>is <00:32:53.875>reducing <00:32:54.015>the <00:32:54.155>bandwidth <00:32:54.295>as <00:32:54.435>oh, <00:32:54.575>you <00:32:54.715>will <00:32:54.855>see <00:32:54.995>that

723
00:32:59.075 --> 00:33:03.125
<00:32:59.075>this <00:32:59.250>has <00:32:59.425>been <00:32:59.600>introduced, <00:32:59.775>um, <00:32:59.950>last <00:33:00.125>year <00:33:00.300>I <00:33:00.475>guess.

724
00:33:04.265 --> 00:33:07.405
<00:33:04.265>And <00:33:04.405>here's <00:33:04.545>how <00:33:04.685>it <00:33:04.825>is. <00:33:04.965>You <00:33:05.105>are <00:33:05.245>actually <00:33:05.385>having <00:33:05.525>two <00:33:05.665>functions.

725
00:33:07.405 --> 00:33:09.645
<00:33:07.405>You'll <00:33:07.580>find <00:33:07.754>what <00:33:07.930>is <00:33:08.105>common <00:33:08.280>between <00:33:08.455>the <00:33:08.629>two <00:33:08.805>functions

726
00:33:09.645 --> 00:33:13.565
<00:33:09.645>and <00:33:09.800>use <00:33:09.956>this <00:33:10.111>as <00:33:10.267>a <00:33:10.422>dictionary <00:33:10.578>and <00:33:10.733>just <00:33:10.889>compress <00:33:11.045>it.

727
00:33:13.565 --> 00:33:14.645
<00:33:13.565>This <00:33:13.759>is <00:33:13.953>as <00:33:14.148>simple <00:33:14.342>as <00:33:14.537>it.

728
00:33:16.555 --> 00:33:17.735
<00:33:16.555>If <00:33:16.820>you <00:33:17.086>have <00:33:17.351>two <00:33:17.617>versions

729
00:33:17.955 --> 00:33:19.815
<00:33:17.955>or <00:33:18.155>let's <00:33:18.355>say <00:33:18.554>two <00:33:18.754>pages <00:33:18.955>in <00:33:19.155>our <00:33:19.355>case,

730
00:33:20.395 --> 00:33:23.735
<00:33:20.395>so <00:33:20.535>the <00:33:20.675>first <00:33:20.815>version <00:33:20.955>is <00:33:21.095>the <00:33:21.235>full <00:33:21.375>green <00:33:21.514>version, <00:33:21.655>all <00:33:21.795>right?

731
00:33:24.195 --> 00:33:26.135
<00:33:24.195>And <00:33:24.428>then <00:33:24.661>the <00:33:24.895>version <00:33:25.128>two <00:33:25.361>is <00:33:25.595>having,

732
00:33:26.205 --> 00:33:29.615
<00:33:26.205>usually <00:33:26.360>is <00:33:26.516>having <00:33:26.671>only <00:33:26.827>a <00:33:26.982>few <00:33:27.138>things <00:33:27.293>added <00:33:27.449>to <00:33:27.605>it

733
00:33:29.635 --> 00:33:30.655
<00:33:29.635>or <00:33:29.818>change <00:33:30.002>it <00:33:30.185>in <00:33:30.369>it, <00:33:30.553>right?

734
00:33:30.685 --> 00:33:31.975
<00:33:30.685>It's <00:33:30.878>not <00:33:31.072>the <00:33:31.265>full <00:33:31.458>thing. <00:33:31.652>Change <00:33:31.846>it.

735
00:33:32.315 --> 00:33:35.415
<00:33:32.315>So <00:33:32.455>what <00:33:32.595>is <00:33:32.735>happening <00:33:32.875>that <00:33:33.015>you <00:33:33.155>are <00:33:33.295>sending <00:33:33.435>the <00:33:33.575>first <00:33:33.715>request

736
00:33:35.415 --> 00:33:37.975
<00:33:35.415>with <00:33:35.615>version <00:33:35.815>one <00:33:36.014>and <00:33:36.215>you <00:33:36.415>say <00:33:36.615>use <00:33:36.815>version

737
00:33:38.075 --> 00:33:39.175
<00:33:38.075>one <00:33:38.405>as <00:33:38.735>a <00:33:39.065>dictionary.

738
00:33:39.855 --> 00:33:42.235
<00:33:39.855>Second <00:33:40.010>time <00:33:40.166>you <00:33:40.321>are <00:33:40.477>sending, <00:33:40.632>all <00:33:40.788>right, <00:33:40.943>I <00:33:41.099>would <00:33:41.255>like

739
00:33:42.235 --> 00:33:44.995
<00:33:42.235>to <00:33:42.375>have <00:33:42.514>version <00:33:42.655>two, <00:33:42.794>but <00:33:42.935>use <00:33:43.074>version <00:33:43.215>one <00:33:43.354>as <00:33:43.495>a <00:33:43.635>dictionary.

740
00:33:45.415 --> 00:33:47.715
<00:33:45.415>So <00:33:45.590>imagine <00:33:45.764>instead <00:33:45.940>of <00:33:46.115>sending <00:33:46.290>the <00:33:46.465>whole <00:33:46.639>thing <00:33:46.815>again,

741
00:33:47.735 --> 00:33:50.995
<00:33:47.735>you <00:33:47.909>are <00:33:48.084>only <00:33:48.260>sending <00:33:48.435>this <00:33:48.610>small <00:33:48.784>little <00:33:48.959>blue <00:33:49.135>thing.

742
00:33:51.185 --> 00:33:54.805
<00:33:51.185>It's <00:33:51.360>like <00:33:51.534>one <00:33:51.710>10th <00:33:51.885>of <00:33:52.060>it <00:33:52.235>of <00:33:52.409>each <00:33:52.585>file.

743
00:33:54.905 --> 00:33:56.525
<00:33:54.905>So <00:33:55.105>you <00:33:55.305>are <00:33:55.504>gaining <00:33:55.705>a <00:33:55.905>lot <00:33:56.105>with <00:33:56.305>that.

744
00:33:56.715 --> 00:33:58.605
<00:33:56.715>Here <00:33:56.995>is <00:33:57.274>some <00:33:57.554>results <00:33:57.834>using <00:33:58.115>this.

745
00:33:58.705 --> 00:34:02.085
<00:33:58.705>Um, <00:33:58.860>with <00:33:59.016>Broley, <00:33:59.171>we <00:33:59.327>have <00:33:59.482>Gsip, <00:33:59.638>it's <00:33:59.793>the <00:33:59.949>blue <00:34:00.105>one.

746
00:34:02.185 --> 00:34:03.485
<00:34:02.185>Broley <00:34:02.477>is <00:34:02.770>the <00:34:03.062>red <00:34:03.355>one,

747
00:34:03.485 --> 00:34:05.925
<00:34:03.485>and <00:34:03.640>we <00:34:03.796>have <00:34:03.951>broley <00:34:04.107>with <00:34:04.262>dictionary <00:34:04.418>is <00:34:04.573>the <00:34:04.729>yellow <00:34:04.885>one.

748
00:34:06.155 --> 00:34:09.285
<00:34:06.155>This <00:34:06.355>is <00:34:06.555>gaining <00:34:06.754>85% <00:34:06.955>in <00:34:07.155>the <00:34:07.355>YouTube <00:34:07.555>desktop.

749
00:34:09.675 --> 00:34:11.045
<00:34:09.675>This <00:34:10.086>is <00:34:10.497>huge, <00:34:10.908>right?

750
00:34:11.545 --> 00:34:14.845
<00:34:11.545>89, <00:34:11.825>80 <00:34:12.105>5% <00:34:12.385>enhancement <00:34:12.665>in <00:34:12.945>performance.

751
00:34:15.065 --> 00:34:16.485
<00:34:15.065>In <00:34:15.384>a <00:34:15.704>normal <00:34:16.023>Versa <00:34:16.343>app,

752
00:34:16.555 --> 00:34:19.765
<00:34:16.554>it's <00:34:16.835>actually <00:34:17.114>gaining <00:34:17.395>like <00:34:17.674>96% <00:34:17.955>enhancement.

753
00:34:20.145 --> 00:34:21.965
<00:34:20.145>And <00:34:20.344>in <00:34:20.545>other <00:34:20.745>things <00:34:20.945>as <00:34:21.145>well <00:34:21.344>with <00:34:21.545>wasm

754
00:34:21.965 --> 00:34:23.405
<00:34:21.965>and <00:34:22.289>stuff, <00:34:22.613>this <00:34:22.937>is <00:34:23.261>huge

755
00:34:23.745 --> 00:34:25.445
<00:34:23.745>and <00:34:23.944>this <00:34:24.145>is <00:34:24.344>actually <00:34:24.545>happening <00:34:24.745>on <00:34:24.944>the <00:34:25.145>server.

756
00:34:25.505 --> 00:34:29.245
<00:34:25.505>So <00:34:25.645>you <00:34:25.785>can <00:34:25.925>ask <00:34:26.065>the, <00:34:26.205>the <00:34:26.345>people <00:34:26.485>who <00:34:26.625>are <00:34:26.765>uh, <00:34:26.905>responsible,

757
00:34:29.245 --> 00:34:32.085
<00:34:29.245>if <00:34:29.400>you <00:34:29.556>are <00:34:29.711>responsible <00:34:29.867>of <00:34:30.022>the <00:34:30.178>server, <00:34:30.333>can <00:34:30.489>enable <00:34:30.645>dictionary

758
00:34:32.225 --> 00:34:33.845
<00:34:32.225>and <00:34:32.458>gains <00:34:32.691>this <00:34:32.924>out <00:34:33.158>of <00:34:33.391>the <00:34:33.625>box.

759
00:34:33.995 --> 00:34:36.285
<00:34:33.995>This <00:34:34.228>will <00:34:34.461>resolve <00:34:34.694>the <00:34:34.928>issue <00:34:35.161>of <00:34:35.395>resources

760
00:34:36.705 --> 00:34:37.725
<00:34:36.705>for <00:34:37.163>speculation <00:34:37.623>rules.

761
00:34:37.725 --> 00:34:41.485
<00:34:37.725>Even <00:34:37.924>if <00:34:38.125>you <00:34:38.324>are <00:34:38.525>loading <00:34:38.725>immediate, <00:34:38.924>loading <00:34:39.125>immediate.

762
00:34:41.665 --> 00:34:44.845
<00:34:41.665>And <00:34:41.945>this <00:34:42.225>immediate <00:34:42.505>is <00:34:42.784>um, <00:34:43.065>50

763
00:34:45.265 --> 00:34:48.205
<00:34:45.264>or <00:34:45.404>sorry, <00:34:45.545>10 <00:34:45.685>pages <00:34:45.824>ahead <00:34:45.964>of <00:34:46.105>time <00:34:46.245>if <00:34:46.384>it's <00:34:46.525>that <00:34:46.665>small.

764
00:34:48.385 --> 00:34:50.725
<00:34:48.385>So <00:34:48.540>you <00:34:48.696>are <00:34:48.851>loading <00:34:49.007>the <00:34:49.162>10 <00:34:49.318>pages <00:34:49.473>with <00:34:49.629>the <00:34:49.785>cost

765
00:34:50.725 --> 00:34:52.645
<00:34:50.725>of <00:34:51.005>one <00:34:51.284>page <00:34:51.565>without <00:34:51.844>the <00:34:52.125>compression.

766
00:34:53.345 --> 00:34:55.885
<00:34:53.344>So <00:34:53.520>speculation <00:34:53.694>rules <00:34:53.870>comes <00:34:54.044>hand <00:34:54.219>in <00:34:54.395>hand <00:34:54.569>with <00:34:54.745>dictionary.

767
00:34:56.035 --> 00:34:58.085
<00:34:56.034>It's <00:34:56.234>really <00:34:56.435>good, <00:34:56.634>really <00:34:56.835>cool. <00:34:57.034>Try <00:34:57.234>it <00:34:57.435>out.

768
00:34:59.345 --> 00:35:02.005
<00:34:59.345>And <00:34:59.544>what <00:34:59.745>now, <00:34:59.944>now <00:35:00.145>it <00:35:00.345>is <00:35:00.544>your <00:35:00.745>tour.

769
00:35:02.175 --> 00:35:03.245
<00:35:02.175>First <00:35:02.415>of <00:35:02.656>all, <00:35:02.897>you <00:35:03.138>need

770
00:35:03.245 --> 00:35:05.165
<00:35:03.245>to <00:35:03.444>try <00:35:03.645>speculation <00:35:03.845>rules <00:35:04.045>using <00:35:04.245>this <00:35:04.444>quick <00:35:04.645>script

771
00:35:05.515 --> 00:35:06.525
<00:35:05.515>that <00:35:05.696>I <00:35:05.878>show <00:35:06.060>it <00:35:06.242>to <00:35:06.424>you.

772
00:35:06.925 --> 00:35:08.765
<00:35:06.925>I <00:35:07.158>will <00:35:07.391>share <00:35:07.625>that <00:35:07.858>later <00:35:08.091>on <00:35:08.325>Twitter,

773
00:35:08.825 --> 00:35:10.365
<00:35:08.825>on <00:35:09.055>on <00:35:09.287>my, <00:35:09.518>my <00:35:09.749>website <00:35:09.979>as <00:35:10.211>well.

774
00:35:12.025 --> 00:35:15.565
<00:35:12.025>You <00:35:12.180>can, <00:35:12.336>uh, <00:35:12.491>enable <00:35:12.647>dictionary <00:35:12.802>to <00:35:12.958>get <00:35:13.113>some <00:35:13.269>nifty <00:35:13.425>bandwidth

775
00:35:15.625 --> 00:35:17.805
<00:35:15.625>and <00:35:15.858>this <00:35:16.091>is, <00:35:16.325>uh, <00:35:16.558>really, <00:35:16.791>really <00:35:17.025>cool

776
00:35:18.865 --> 00:35:21.685
<00:35:18.865>and <00:35:19.020>you <00:35:19.176>need <00:35:19.331>to <00:35:19.487>keep <00:35:19.642>optimizing <00:35:19.798>for <00:35:19.953>the <00:35:20.109>first <00:35:20.265>load,

777
00:35:21.715 --> 00:35:22.885
<00:35:21.715>even <00:35:21.978>if <00:35:22.241>it's <00:35:22.504>not <00:35:22.768>navigation

778
00:35:22.885 --> 00:35:24.965
<00:35:22.885>because <00:35:23.118>speculation <00:35:23.351>is <00:35:23.585>only <00:35:23.818>helpful <00:35:24.051>in <00:35:24.285>navigation.

779
00:35:24.995 --> 00:35:26.285
<00:35:24.995>What <00:35:25.227>if <00:35:25.459>they <00:35:25.691>are <00:35:25.923>not <00:35:26.156>navigating?

780
00:35:26.365 --> 00:35:27.765
<00:35:26.365>What <00:35:26.544>if <00:35:26.725>they <00:35:26.904>are <00:35:27.085>using <00:35:27.265>a <00:35:27.444>different <00:35:27.625>browser?

781
00:35:27.995 --> 00:35:29.165
<00:35:27.995>Keep <00:35:28.346>optimizing <00:35:28.697>for <00:35:29.048>that.

782
00:35:29.235 --> 00:35:31.445
<00:35:29.235>This <00:35:29.410>is <00:35:29.585>not <00:35:29.760>cool <00:35:29.935>for <00:35:30.110>not <00:35:30.285>optimizing <00:35:30.460>for <00:35:30.635>performance,

783
00:35:31.705 --> 00:35:33.725
<00:35:31.705>but <00:35:31.904>it <00:35:32.105>is <00:35:32.305>a <00:35:32.505>useful <00:35:32.705>thing <00:35:32.904>for <00:35:33.105>navigation

784
00:35:34.545 --> 00:35:35.965
<00:35:34.545>and <00:35:34.800>an <00:35:35.056>extra <00:35:35.311>tab <00:35:35.567>as <00:35:35.823>well.

785
00:35:36.055 --> 00:35:37.965
<00:35:36.055>Since <00:35:36.288>this <00:35:36.521>is <00:35:36.754>working <00:35:36.988>only <00:35:37.221>with <00:35:37.455>multi,

786
00:35:38.415 --> 00:35:41.605
<00:35:38.415>multi-page <00:35:38.648>applications <00:35:38.881>is <00:35:39.115>to <00:35:39.348>use <00:35:39.581>it <00:35:39.815>alongside

787
00:35:41.605 --> 00:35:43.485
<00:35:41.605>with <00:35:41.885>the <00:35:42.165>cross <00:35:42.445>document <00:35:42.725>view <00:35:43.005>transition.

788
00:35:43.485 --> 00:35:46.205
<00:35:43.485>This <00:35:43.612>will <00:35:43.739>make <00:35:43.866>it <00:35:43.994>very <00:35:44.121>smooth <00:35:44.248>even <00:35:44.375>if <00:35:44.503>you <00:35:44.630>get <00:35:44.757>like <00:35:44.885>400

789
00:35:46.205 --> 00:35:48.925
<00:35:46.205>millisecond <00:35:46.438>and <00:35:46.671>it <00:35:46.904>takes <00:35:47.138>like <00:35:47.371>700 <00:35:47.605>millisecond

790
00:35:48.925 --> 00:35:52.365
<00:35:48.925>to <00:35:49.065>loot <00:35:49.205>this <00:35:49.345>300 <00:35:49.485>millisecond <00:35:49.625>might <00:35:49.765>be <00:35:49.905>in <00:35:50.045>the <00:35:50.185>transition <00:35:50.325>in

791
00:35:52.365 --> 00:35:53.885
<00:35:52.365>the <00:35:52.707>animation, <00:35:53.049>wouldn't <00:35:53.391>feel <00:35:53.733>anything.

792
00:35:53.885 --> 00:35:57.605
<00:35:53.885>It's <00:35:54.060>all <00:35:54.235>about <00:35:54.410>perception <00:35:54.585>and <00:35:54.760>I <00:35:54.935>think <00:35:55.110>that's <00:35:55.285>it.

793
00:35:57.745 --> 00:36:00.045
<00:35:57.745>We <00:35:57.884>have <00:35:58.025>some <00:35:58.165>resources <00:35:58.305>that <00:35:58.444>you <00:35:58.585>can <00:35:58.725>read <00:35:58.865>more <00:35:59.005>about <00:35:59.145>it.

794
00:36:00.285 --> 00:36:03.165
<00:36:00.285>I <00:36:00.484>always <00:36:00.685>recommend <00:36:00.884>using <00:36:01.085>web <00:36:01.285>dev, <00:36:01.484>uh, <00:36:01.685>MDN

795
00:36:03.165 --> 00:36:04.605
<00:36:03.165>to <00:36:03.424>read <00:36:03.683>more <00:36:03.942>about <00:36:04.201>speculation <00:36:04.461>rules.

796
00:36:04.945 --> 00:36:07.965
<00:36:04.945>If <00:36:05.052>you <00:36:05.160>like <00:36:05.268>what <00:36:05.375>you <00:36:05.483>see, <00:36:05.591>you <00:36:05.698>can <00:36:05.806>scan <00:36:05.914>this <00:36:06.021>QR <00:36:06.129>code <00:36:06.237>to, <00:36:06.345>uh,

797
00:36:08.135 --> 00:36:09.765
<00:36:08.135>reach <00:36:08.368>out <00:36:08.601>to <00:36:08.835>me <00:36:09.068>on <00:36:09.301>my <00:36:09.535>website.

798
00:36:10.105 --> 00:36:12.285
<00:36:10.105>Uh, <00:36:10.260>be <00:36:10.416>more <00:36:10.571>than <00:36:10.727>happy <00:36:10.882>to <00:36:11.038>answer <00:36:11.193>any <00:36:11.349>question <00:36:11.505>now

799
00:36:12.385 --> 00:36:13.445
<00:36:12.385>or <00:36:12.703>later <00:36:13.021>as <00:36:13.339>well.