Skip to content

Commit cbabb29

Browse files
committed
Merge branch 'main' of github.com:HTTPArchive/almanac.httparchive.org into production
2 parents fbff24f + a32e18b commit cbabb29

33 files changed

Lines changed: 1785 additions & 171 deletions

.github/workflows/add-to-release-notes.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ jobs:
1616
if: github.repository == 'HTTPArchive/almanac.httparchive.org'
1717
steps:
1818
- name: Update release notes
19-
uses: release-drafter/release-drafter@v5.21.1
19+
uses: release-drafter/release-drafter@v5.22.0
2020
env:
2121
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/code-static-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
uses: actions/checkout@v3
3636
- name: Set up Python 3.8
3737
if: ${{ matrix.language == 'python' }}
38-
uses: actions/setup-python@v4.3.1
38+
uses: actions/setup-python@v4.4.0
3939
with:
4040
python-version: '3.8'
4141
- name: Install dependencies

.github/workflows/linter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
run: |
3232
echo "VALIDATE_ALL_CODEBASE=false" >> $GITHUB_ENV
3333
- name: Lint Code Base
34-
uses: github/super-linter@v4.9.7
34+
uses: github/super-linter@v4.10.0
3535
#uses: docker://github/super-linter:v4.7.1
3636
env:
3737
DEFAULT_BRANCH: main

.github/workflows/lintsql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
# Full git history is needed to get a proper list of changed files within `super-linter`
2020
fetch-depth: 0
2121
- name: Set up Python 3.8
22-
uses: actions/setup-python@v4.3.1
22+
uses: actions/setup-python@v4.4.0
2323
with:
2424
python-version: '3.8'
2525
- name: Lint SQL code

.github/workflows/predeploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
with:
3737
node-version: '16'
3838
- name: Set up Python 3.8
39-
uses: actions/setup-python@v4.3.1
39+
uses: actions/setup-python@v4.4.0
4040
with:
4141
python-version: '3.8'
4242
- name: Install Asian Fonts

.github/workflows/test_website.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
with:
3131
node-version: '16'
3232
- name: Set up Python 3.8
33-
uses: actions/setup-python@v4.3.1
33+
uses: actions/setup-python@v4.4.0
3434
with:
3535
python-version: '3.8'
3636
- name: Run the website
@@ -40,7 +40,7 @@ jobs:
4040
- name: Use more complete checks for generated HTML linting
4141
run: cp -f .github/linters/.htmlhintrc_morechecks .github/linters/.htmlhintrc
4242
- name: Lint Generated HTML
43-
uses: github/super-linter@v4.9.7
43+
uses: github/super-linter@v4.10.0
4444
env:
4545
DEFAULT_BRANCH: main
4646
FILTER_REGEX_INCLUDE: src/static/html/.*

sql/.sqlfluff

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ templater = jinja
1111
# Comma separated list of rules to check, default to all
1212
rules = all
1313
# Comma separated list of rules to exclude, or None
14-
exclude_rules = L011,L014,L016,L020,L022,L026,L027,L028,L029,L030,L031,L032,L034,L035,L036,L037,L042,L043,L051,L060
14+
exclude_rules = L011,L014,L015,L016,L020,L022,L026,L027,L028,L029,L030,L031,L032,L034,L035,L036,L037,L042,L043,L051,L060,L071
1515
# L011 - We don't always alias tables with AS ("FROM table1 AS tb1" instead of "FROM table1 tb1"). Do for columns but not for tables.
1616
# L014 - Unquoted identifiers (e.g. column names) will be mixed case so don't enforce case
17+
# L015 - Sometimes clearer to include brackets for complex COUNT(DISTINCT) cases
1718
# L016 - We allow longer lines as some of our queries are complex. Maybe should limit in future?
1819
# L020 - Asks for unique table aliases meaning it complains if selecting from two 2021_07_01 tables as implicit alias is table name (not fully qualified) so same.
1920
# L022 - CTEs may be chained and do not require a blank line separator, only the last one.
@@ -32,6 +33,7 @@ exclude_rules = L011,L014,L016,L020,L022,L026,L027,L028,L029,L030,L031,L032,L034
3233
# L043 - Use coalesce instead of case if you can. But it's clearer!?
3334
# L051 - INNER JOIN must be fully qualified. Probably should use this but not our style.
3435
# L060 - Use COALESCE instead of IFNULL or NVL. We think ISNULL is clearer.
36+
# L071 - Turn off until https://github.com/sqlfluff/sqlfluff/issues/4188 is addressed
3537
# The depth to recursively parse to (0 for unlimited)
3638
recurse = 0
3739
# Below controls SQLFluff output, see max_line_length for SQL output
@@ -143,12 +145,6 @@ unquoted_identifiers_policy = all
143145
[sqlfluff:rules:L003]
144146
hanging_indents = True
145147

146-
# TODO - remove once 1.4.1 fully rolled out as this has been replaced by
147-
# [sqlfluff:layout:type:binary_operator]
148-
# line_position = trailing
149-
[sqlfluff:rules:L007]
150-
operator_new_lines = before
151-
152148
[sqlfluff:rules:L010]
153149
# Keywords
154150
capitalisation_policy = upper

src/config/2022.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,6 +1078,16 @@
10781078
"github": "RoelN",
10791079
"website": "http://pixelambacht.nl"
10801080
},
1081+
"ksakae1216": {
1082+
"name": "Sakae Kotaro",
1083+
"teams": [
1084+
"translators"
1085+
],
1086+
"avatar_url": "1982567",
1087+
"website": "https://ksakae1216.com/",
1088+
"github": "ksakae1216",
1089+
"twitter": "beltway7"
1090+
},
10811091
"whitep4nth3r": {
10821092
"name": "Salma Alam-Naylor",
10831093
"teams": [

src/config/last_updated.json

Lines changed: 60 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -51,121 +51,121 @@
5151
},
5252
"/static/pdfs/web_almanac_2019_en.pdf": {
5353
"date_published": "2020-05-15T00:00:00.000Z",
54-
"date_modified": "2022-12-12T00:00:00.000Z",
55-
"hash": "3e79e2fc73b50c87807e222f81a88b28",
54+
"date_modified": "2023-01-09T00:00:00.000Z",
55+
"hash": "0a74477e8a81b55d819a645475d09489",
5656
"size": 17
5757
},
5858
"/static/pdfs/web_almanac_2019_en_cover_A5.pdf": {
5959
"date_published": "2020-05-15T00:00:00.000Z",
60-
"date_modified": "2022-12-12T00:00:00.000Z",
61-
"hash": "776fabb7f9df58d9936f0fe2c9545fa7"
60+
"date_modified": "2023-01-09T00:00:00.000Z",
61+
"hash": "c681154c0d5880368ee8384f2653b383"
6262
},
6363
"/static/pdfs/web_almanac_2019_en_print_A5.pdf": {
6464
"date_published": "2020-05-15T00:00:00.000Z",
65-
"date_modified": "2022-12-12T00:00:00.000Z",
66-
"hash": "7f925a8c87385dae937ab0fd3aaf0ab2",
65+
"date_modified": "2023-01-09T00:00:00.000Z",
66+
"hash": "cb5f032f97a903d3ed8ae2c48d6cf8e0",
6767
"size": 16
6868
},
6969
"/static/pdfs/web_almanac_2019_ja.pdf": {
7070
"date_published": "2020-05-15T00:00:00.000Z",
71-
"date_modified": "2022-12-12T00:00:00.000Z",
72-
"hash": "48139d879d774270074e4e8185b748e1",
71+
"date_modified": "2023-01-09T00:00:00.000Z",
72+
"hash": "61e6ad9d709fe20eb3fe2b51ea898284",
7373
"size": 17
7474
},
7575
"/static/pdfs/web_almanac_2019_ja_cover_A5.pdf": {
7676
"date_published": "2020-05-15T00:00:00.000Z",
77-
"date_modified": "2022-12-12T00:00:00.000Z",
78-
"hash": "9f850986c68e089a7fbb35b6f46b6435"
77+
"date_modified": "2023-01-09T00:00:00.000Z",
78+
"hash": "fdc20297b23d1d7c159c8ab0dea7561f"
7979
},
8080
"/static/pdfs/web_almanac_2019_ja_print_A5.pdf": {
8181
"date_published": "2020-05-15T00:00:00.000Z",
82-
"date_modified": "2022-12-12T00:00:00.000Z",
83-
"hash": "fd4e3ea51f4b3af6036bda83246fb78d",
82+
"date_modified": "2023-01-09T00:00:00.000Z",
83+
"hash": "f48ca0685f34db509a2ab2abb19bebec",
8484
"size": 17
8585
},
8686
"/static/pdfs/web_almanac_2020_en.pdf": {
8787
"date_published": "2020-12-08T00:00:00.000Z",
88-
"date_modified": "2022-12-12T00:00:00.000Z",
89-
"hash": "08d837f48b038308b5998a6bfc9cf221",
88+
"date_modified": "2023-01-09T00:00:00.000Z",
89+
"hash": "23e69a08e0d5220253c65e2e784cea5a",
9090
"size": 24
9191
},
9292
"/static/pdfs/web_almanac_2020_en_cover_A5.pdf": {
9393
"date_published": "2020-12-09T00:00:00.000Z",
94-
"date_modified": "2022-12-12T00:00:00.000Z",
95-
"hash": "7ffe037d57fa7430cf16316e4895fd76"
94+
"date_modified": "2023-01-09T00:00:00.000Z",
95+
"hash": "c3bf676b40bfb510e0c75aea132ee3d2"
9696
},
9797
"/static/pdfs/web_almanac_2020_en_print_A5.pdf": {
9898
"date_published": "2020-12-09T00:00:00.000Z",
99-
"date_modified": "2022-12-12T00:00:00.000Z",
100-
"hash": "528c882876087effa580eec993c28391",
101-
"size": 23
99+
"date_modified": "2023-01-09T00:00:00.000Z",
100+
"hash": "f232bbe8da467f4f3e8b43305d7796b4",
101+
"size": 24
102102
},
103103
"/static/pdfs/web_almanac_2020_ja.pdf": {
104104
"date_published": "2021-10-24T00:00:00.000Z",
105-
"date_modified": "2022-12-12T00:00:00.000Z",
106-
"hash": "65272d82d805dad958d3c8d575baa60c",
107-
"size": 24
105+
"date_modified": "2023-01-09T00:00:00.000Z",
106+
"hash": "e3c3606cc4fbe021d29bd27502300b5d",
107+
"size": 25
108108
},
109109
"/static/pdfs/web_almanac_2020_ja_cover_A5.pdf": {
110110
"date_published": "2021-10-24T00:00:00.000Z",
111-
"date_modified": "2022-12-12T00:00:00.000Z",
112-
"hash": "0bf08f8e5e46c22e466995de675eadae"
111+
"date_modified": "2023-01-09T00:00:00.000Z",
112+
"hash": "0efdaf2507957a00028c5d174dd62276"
113113
},
114114
"/static/pdfs/web_almanac_2020_ja_print_A5.pdf": {
115115
"date_published": "2021-10-24T00:00:00.000Z",
116-
"date_modified": "2022-12-12T00:00:00.000Z",
117-
"hash": "6609d50a675b4f0e768068c80382fc39",
116+
"date_modified": "2023-01-09T00:00:00.000Z",
117+
"hash": "dbb15973d741bd3846095e29afb0e55c",
118118
"size": 24
119119
},
120120
"/static/pdfs/web_almanac_2021_en.pdf": {
121121
"date_published": "2021-12-01T00:00:00.000Z",
122-
"date_modified": "2022-12-12T00:00:00.000Z",
123-
"hash": "67a9351b18ecbadb93e4c612a8aeea8f",
122+
"date_modified": "2023-01-09T00:00:00.000Z",
123+
"hash": "4dadaa8dfa01808e75ca272f213831db",
124124
"size": 32
125125
},
126126
"/static/pdfs/web_almanac_2021_en_cover_A5.pdf": {
127127
"date_published": "2021-12-01T00:00:00.000Z",
128-
"date_modified": "2022-12-12T00:00:00.000Z",
129-
"hash": "5117866a9e4b604f1f21a617cdb9918a"
128+
"date_modified": "2023-01-09T00:00:00.000Z",
129+
"hash": "76e2f18cb0f00aeed667c1cdbd8ba7fc"
130130
},
131131
"/static/pdfs/web_almanac_2021_en_print_A5.pdf": {
132132
"date_published": "2021-12-01T00:00:00.000Z",
133-
"date_modified": "2022-12-12T00:00:00.000Z",
134-
"hash": "d0555b0b26a562e74b2daba097b32f23",
133+
"date_modified": "2023-01-09T00:00:00.000Z",
134+
"hash": "bf9175f5893d5fb5fb21c1c42ef2d6f2",
135135
"size": 31
136136
},
137137
"/static/pdfs/web_almanac_2021_ja.pdf": {
138138
"date_published": "22-08-01T00:00:00.000Z",
139-
"date_modified": "2022-12-12T00:00:00.000Z",
140-
"hash": "d51bed2195e376103f8febb5c279ede8",
139+
"date_modified": "2023-01-09T00:00:00.000Z",
140+
"hash": "19597f03e59e3bc90b69888ee1dbe36b",
141141
"size": 32
142142
},
143143
"/static/pdfs/web_almanac_2021_ja_cover_A5.pdf": {
144144
"date_published": "22-08-01T00:00:00.000Z",
145-
"date_modified": "2022-12-12T00:00:00.000Z",
146-
"hash": "766f9f432b96b67e6027298104898ef6"
145+
"date_modified": "2023-01-09T00:00:00.000Z",
146+
"hash": "dede3f9c7bfa836b155f49d6f7fb2045"
147147
},
148148
"/static/pdfs/web_almanac_2021_ja_print_A5.pdf": {
149149
"date_published": "22-08-01T00:00:00.000Z",
150-
"date_modified": "2022-12-12T00:00:00.000Z",
151-
"hash": "13286c00f9d63c659400dd142f51710f",
150+
"date_modified": "2023-01-09T00:00:00.000Z",
151+
"hash": "950c207f744661a777f3392206b67c4d",
152152
"size": 32
153153
},
154154
"/static/pdfs/web_almanac_2022_en.pdf": {
155155
"date_published": "2022-10-19T00:00:00.000Z",
156-
"date_modified": "2022-12-12T00:00:00.000Z",
157-
"hash": "8c80024397eba6ee3a08ee9a3990a557",
156+
"date_modified": "2023-01-09T00:00:00.000Z",
157+
"hash": "b0de6207db20f34b2ee7f45c6b4c5c1a",
158158
"size": 32
159159
},
160160
"/static/pdfs/web_almanac_2022_en_cover_A5.pdf": {
161161
"date_published": "2022-10-19T00:00:00.000Z",
162-
"date_modified": "2022-12-12T00:00:00.000Z",
163-
"hash": "ea34fedbd86af9b7130785d98bde80ec"
162+
"date_modified": "2023-01-09T00:00:00.000Z",
163+
"hash": "830aa7f71cc8dfe4d7f2e6c429b73e6b"
164164
},
165165
"/static/pdfs/web_almanac_2022_en_print_A5.pdf": {
166166
"date_published": "2022-10-19T00:00:00.000Z",
167-
"date_modified": "2022-12-12T00:00:00.000Z",
168-
"hash": "ece8a054d4879b2de8d4f5731299713c",
167+
"date_modified": "2023-01-09T00:00:00.000Z",
168+
"hash": "eda27dd6c81c6a4048db3021437db177",
169169
"size": 32
170170
},
171171
"en/2019/chapters/accessibility.html": {
@@ -635,8 +635,8 @@
635635
},
636636
"en/2022/chapters/javascript.html": {
637637
"date_published": "2022-09-26T00:00:00.000Z",
638-
"date_modified": "2022-12-12T00:00:00.000Z",
639-
"hash": "f77832f3e2c2cddef7558d8828f1e2c6"
638+
"date_modified": "2023-01-09T00:00:00.000Z",
639+
"hash": "8e3040a70a298f2d6ec138da8b835b1a"
640640
},
641641
"en/2022/chapters/markup.html": {
642642
"date_published": "2022-09-26T00:00:00.000Z",
@@ -660,8 +660,8 @@
660660
},
661661
"en/2022/chapters/performance.html": {
662662
"date_published": "2022-10-25T00:00:00.000Z",
663-
"date_modified": "2022-12-12T00:00:00.000Z",
664-
"hash": "268be1d6e423c9204931124dc615a64a"
663+
"date_modified": "2023-01-09T00:00:00.000Z",
664+
"hash": "de9900154cdb0b20fe312e09f1c2fa10"
665665
},
666666
"en/2022/chapters/privacy.html": {
667667
"date_published": "2022-10-13T00:00:00.000Z",
@@ -690,8 +690,8 @@
690690
},
691691
"en/2022/chapters/sustainability.html": {
692692
"date_published": "2022-09-26T00:00:00.000Z",
693-
"date_modified": "2022-11-23T00:00:00.000Z",
694-
"hash": "fbe8e2746da79c657ba6b514158828f4"
693+
"date_modified": "2023-01-09T00:00:00.000Z",
694+
"hash": "70d490762be1a1b4f3096fcbc5ddb44a"
695695
},
696696
"en/2022/chapters/third-parties.html": {
697697
"date_published": "2022-09-26T00:00:00.000Z",
@@ -1598,6 +1598,16 @@
15981598
"date_modified": "2022-12-12T00:00:00.000Z",
15991599
"hash": "8e9fee4dca56d0cff8d1ff4258bae1d7"
16001600
},
1601+
"ja/2022/chapters/javascript.html": {
1602+
"date_published": "2023-01-09T00:00:00.000Z",
1603+
"date_modified": "2023-01-09T00:00:00.000Z",
1604+
"hash": "538bd8d30af3d18e965e21cd0c9ba443"
1605+
},
1606+
"ja/2022/chapters/markup.html": {
1607+
"date_published": "2023-01-09T00:00:00.000Z",
1608+
"date_modified": "2023-01-09T00:00:00.000Z",
1609+
"hash": "ca1508a9d6926c7390286533bfad3855"
1610+
},
16011611
"ja/2022/contributors.html": {
16021612
"date_published": "2022-07-02T00:00:00.000Z",
16031613
"date_modified": "2022-07-02T00:00:00.000Z",

src/content/en/2022/javascript.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ The `type="module"` and `nomodule` attributes are specific to the presence (or a
207207

208208
It's encouraging that 76% of mobile pages load scripts with `async`, as that suggests developers are cognizant of the effects of render blocking. However, such a low usage of `defer` suggests that there are opportunities being left on the table to improve rendering performance.
209209

210-
As noted [last year](../2021/javascript/#async-and-defer), using both `async` and `defer` is an antipattern that should be avoided as the `defer` part is ignored and `async` takes precedence.
210+
As noted [last year](../2021/javascript#async-and-defer), using both `async` and `defer` is an antipattern that should be avoided as the `defer` part is ignored and `async` takes precedence.
211211

212212
The general absence of `type="module"` and `nomodule` is not surprising, as few pages seem to be shipping JavaScript modules. As time goes on, the usage of `type="module"` in particular may increase, as developers ship untransformed JavaScript modules to the browser.
213213

@@ -334,7 +334,7 @@ Unfortunately, we see five `preload` hints for JavaScript resources at the 90th
334334
{{ figure_markup(
335335
image="modulepreload.png",
336336
caption="Distribution of `modulepreload` adoption for JavaScript resources per page.",
337-
description="Bar chart showing the 10, 25, 50, 75, and 90th percentiles of modulepreload hints for JavaScript resources per page. The values for mobile pages are 1, 1, 2, 6, and 14, respectively. Desktop values are nearly identical to mobile..",
337+
description="Bar chart showing the 10, 25, 50, 75, and 90th percentiles of modulepreload hints for JavaScript resources per page. The values for mobile pages are 1, 1, 2, 6, and 14, respectively. Desktop values are nearly identical to mobile.",
338338
chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vTok8UGqYaA58uKaASB2pfM2jlmQu6g3kwHxB6Lb8L7dbccyDtQht823YhchdXRG8SZpB3asRayJI97/pubchart?oid=100852946&format=interactive",
339339
sheets_gid="397179470",
340340
sql_file="resource-hints-preload-prefetch-modulepreload-distribution.sql"
@@ -648,7 +648,7 @@ The first of these is <a hreflang="en" href="https://web.dev/fid/">First Input D
648648
{{ figure_markup(
649649
image="fid.png",
650650
caption="The distribution of websites' 75th percentile FID values.",
651-
description="Bar chart showing the 10, 25, 50, 75 and 90th percentiles of origin's 75th percentile FID values. All values are 0 ms until the 90th percentile, where both desktop and phone are 25 ms.'",
651+
description="Bar chart showing the 10, 25, 50, 75 and 90th percentiles of origin's 75th percentile FID values. All values are 0 ms until the 90th percentile, where both desktop and phone are 25 ms.",
652652
chart_url="https://docs.google.com/spreadsheets/d/e/2PACX-1vTok8UGqYaA58uKaASB2pfM2jlmQu6g3kwHxB6Lb8L7dbccyDtQht823YhchdXRG8SZpB3asRayJI97/pubchart?oid=217835320&format=interactive",
653653
sheets_gid="2108420759",
654654
sql_file="fid.sql"
@@ -777,7 +777,7 @@ Avoid using synchronous XHR, and XHR in general. `fetch` is a much more ergonomi
777777

778778
Before the introduction of DOM insertion methods ([`appendChild`](https://developer.mozilla.org/docs/Web/API/Node/appendChild) and others, for example), <a hreflang="en" href="https://developer.mozilla.org/docs/Web/API/Document/write">`document.write`</a> was used to insert content at the position the `document.write` was made in the document.
779779

780-
`document.write` is very problematic. For one, it blocks the HTML parser, and is problematic for a number of other reasons <a hreflang="en" href="https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document.write(">the HTML spec itself warns against its use</a>). On slow connections, blocking document parsing to append nodes in this way creates performance problems that are entirely avoidable.
780+
`document.write` is very problematic. For one, it blocks the HTML parser, and is problematic for a number of other reasons <a hreflang="en" href="https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document.write()">the HTML spec itself warns against its use</a>. On slow connections, blocking document parsing to append nodes in this way creates performance problems that are entirely avoidable.
781781

782782
{{ figure_markup(
783783
caption="The number of mobile pages using `document.write`.",
@@ -838,7 +838,7 @@ To understand the usage of libraries and frameworks, HTTP Archive uses [Wappalyz
838838
)
839839
}}
840840

841-
It's still no surprise that jQuery is by far the most used library on the web today. Part of that is because WordPress is used on [35%](./cms##most-popular-cmss) of sites, but even so, the majority of jQuery usage occurs outside of the WordPress platform.
841+
It's still no surprise that jQuery is by far the most used library on the web today. Part of that is because WordPress is used on [35%](./cms#most-popular-cmss) of sites, but even so, the majority of jQuery usage occurs outside of the WordPress platform.
842842

843843
While jQuery is relatively small and reasonably quick at what it does, it still represents a certain amount of overhead in applications. Most of what jQuery offers is now <a hreflang="en" href="https://youmightnotneedjquery.com/">doable with native DOM APIs</a>, and may be unnecessary in today's web applications.
844844

0 commit comments

Comments
 (0)