lighthouse 12.2.3-dev.20241211 → 12.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/test/smokehouse/core-tests.js +0 -8
- package/core/audits/byte-efficiency/render-blocking-resources.js +1 -1
- package/core/computed/metrics/cumulative-layout-shift.js +4 -4
- package/core/computed/metrics/lantern-metric.js +2 -4
- package/core/computed/navigation-insights.d.ts +1 -1
- package/core/computed/network-analysis.js +1 -13
- package/core/computed/trace-engine-result.d.ts +0 -4
- package/core/computed/trace-engine-result.js +4 -30
- package/core/config/default-config.js +0 -4
- package/core/gather/gatherers/seo/font-size.d.ts +0 -1
- package/core/gather/gatherers/seo/font-size.js +11 -20
- package/core/lib/trace-engine.d.ts +1 -1
- package/core/lib/trace-engine.js +1 -1
- package/package.json +2 -2
- package/shared/localization/locales/ar-XB.json +0 -60
- package/shared/localization/locales/ar.json +0 -60
- package/shared/localization/locales/bg.json +0 -60
- package/shared/localization/locales/ca.json +0 -60
- package/shared/localization/locales/cs.json +0 -60
- package/shared/localization/locales/da.json +0 -60
- package/shared/localization/locales/de.json +0 -60
- package/shared/localization/locales/el.json +0 -60
- package/shared/localization/locales/en-GB.json +0 -60
- package/shared/localization/locales/en-US.json +40 -154
- package/shared/localization/locales/en-XL.json +40 -154
- package/shared/localization/locales/es-419.json +0 -60
- package/shared/localization/locales/es.json +0 -60
- package/shared/localization/locales/fi.json +0 -60
- package/shared/localization/locales/fil.json +0 -60
- package/shared/localization/locales/fr.json +0 -60
- package/shared/localization/locales/he.json +0 -60
- package/shared/localization/locales/hi.json +0 -60
- package/shared/localization/locales/hr.json +0 -60
- package/shared/localization/locales/hu.json +0 -60
- package/shared/localization/locales/id.json +0 -60
- package/shared/localization/locales/it.json +0 -60
- package/shared/localization/locales/ja.json +0 -60
- package/shared/localization/locales/ko.json +0 -60
- package/shared/localization/locales/lt.json +0 -60
- package/shared/localization/locales/lv.json +0 -60
- package/shared/localization/locales/nl.json +0 -60
- package/shared/localization/locales/no.json +0 -60
- package/shared/localization/locales/pl.json +0 -60
- package/shared/localization/locales/pt-PT.json +0 -60
- package/shared/localization/locales/pt.json +0 -60
- package/shared/localization/locales/ro.json +0 -60
- package/shared/localization/locales/ru.json +0 -60
- package/shared/localization/locales/sk.json +0 -60
- package/shared/localization/locales/sl.json +0 -60
- package/shared/localization/locales/sr-Latn.json +0 -60
- package/shared/localization/locales/sr.json +0 -60
- package/shared/localization/locales/sv.json +0 -60
- package/shared/localization/locales/ta.json +0 -60
- package/shared/localization/locales/te.json +0 -60
- package/shared/localization/locales/th.json +0 -60
- package/shared/localization/locales/tr.json +0 -60
- package/shared/localization/locales/uk.json +0 -60
- package/shared/localization/locales/vi.json +0 -60
- package/shared/localization/locales/zh-HK.json +0 -60
- package/shared/localization/locales/zh-TW.json +0 -60
- package/shared/localization/locales/zh.json +0 -60
- package/types/artifacts.d.ts +2 -2
- package/core/audits/has-hsts.d.ts +0 -44
- package/core/audits/has-hsts.js +0 -208
- package/core/audits/origin-isolation.d.ts +0 -40
- package/core/audits/origin-isolation.js +0 -155
|
@@ -21,8 +21,6 @@ import fpsMaxPassive from './test-definitions/fps-max-passive.js';
|
|
|
21
21
|
import fpsScaled from './test-definitions/fps-scaled.js';
|
|
22
22
|
import fpsOverflowX from './test-definitions/fps-overflow-x.js';
|
|
23
23
|
import issuesMixedContent from './test-definitions/issues-mixed-content.js';
|
|
24
|
-
import hstsFullyPresent from './test-definitions/hsts-fully-present.js';
|
|
25
|
-
import hstsMissingDirectives from './test-definitions/hsts-missing-directives.js';
|
|
26
24
|
import lanternFetch from './test-definitions/lantern-fetch.js';
|
|
27
25
|
import lanternIdleCallbackLong from './test-definitions/lantern-idle-callback-long.js';
|
|
28
26
|
import lanternIdleCallbackShort from './test-definitions/lantern-idle-callback-short.js';
|
|
@@ -37,8 +35,6 @@ import metricsTrickyTti from './test-definitions/metrics-tricky-tti.js';
|
|
|
37
35
|
import metricsTrickyTtiLateFcp from './test-definitions/metrics-tricky-tti-late-fcp.js';
|
|
38
36
|
import oopifRequests from './test-definitions/oopif-requests.js';
|
|
39
37
|
import oopifScripts from './test-definitions/oopif-scripts.js';
|
|
40
|
-
import originIsolationCoopHeaderMissing from './test-definitions/origin-isolation-coop-header-missing.js';
|
|
41
|
-
import originIsolationCoopPresent from './test-definitions/origin-isolation-coop-present.js';
|
|
42
38
|
import perfDebug from './test-definitions/perf-debug.js';
|
|
43
39
|
import perfDiagnosticsAnimations from './test-definitions/perf-diagnostics-animations.js';
|
|
44
40
|
import perfDiagnosticsThirdParty from './test-definitions/perf-diagnostics-third-party.js';
|
|
@@ -83,8 +79,6 @@ const smokeTests = [
|
|
|
83
79
|
fpsOverflowX,
|
|
84
80
|
fpsScaled,
|
|
85
81
|
issuesMixedContent,
|
|
86
|
-
hstsFullyPresent,
|
|
87
|
-
hstsMissingDirectives,
|
|
88
82
|
lanternFetch,
|
|
89
83
|
lanternIdleCallbackLong,
|
|
90
84
|
lanternIdleCallbackShort,
|
|
@@ -99,8 +93,6 @@ const smokeTests = [
|
|
|
99
93
|
metricsTrickyTtiLateFcp,
|
|
100
94
|
oopifRequests,
|
|
101
95
|
oopifScripts,
|
|
102
|
-
originIsolationCoopHeaderMissing,
|
|
103
|
-
originIsolationCoopPresent,
|
|
104
96
|
perfDebug,
|
|
105
97
|
perfDiagnosticsAnimations,
|
|
106
98
|
perfDiagnosticsThirdParty,
|
|
@@ -130,7 +130,7 @@ class RenderBlockingResources extends Audit {
|
|
|
130
130
|
const wastedCssBytes = await RenderBlockingResources.computeWastedCSSBytes(artifacts, context);
|
|
131
131
|
const navInsights = await NavigationInsights.request(trace, context);
|
|
132
132
|
|
|
133
|
-
const renderBlocking = navInsights.
|
|
133
|
+
const renderBlocking = navInsights.RenderBlocking;
|
|
134
134
|
if (renderBlocking instanceof Error) throw renderBlocking;
|
|
135
135
|
|
|
136
136
|
/** @type {LH.Audit.Context['settings']} */
|
|
@@ -160,13 +160,13 @@ class CumulativeLayoutShift {
|
|
|
160
160
|
Screenshots: TraceEngine.TraceHandlers.Screenshots,
|
|
161
161
|
});
|
|
162
162
|
// eslint-disable-next-line max-len
|
|
163
|
-
await processor.parse(/** @type {import('@paulirish/trace_engine').Types.
|
|
163
|
+
await processor.parse(/** @type {import('@paulirish/trace_engine').Types.TraceEvents.TraceEventData[]} */ (
|
|
164
164
|
events
|
|
165
|
-
)
|
|
166
|
-
if (!processor.
|
|
165
|
+
));
|
|
166
|
+
if (!processor.traceParsedData) {
|
|
167
167
|
throw new Error('null trace engine result');
|
|
168
168
|
}
|
|
169
|
-
return processor.
|
|
169
|
+
return processor.traceParsedData.LayoutShifts.sessionMaxScore;
|
|
170
170
|
};
|
|
171
171
|
const cumulativeLayoutShift = await run(allFrameShiftEvents.map(e => e.event));
|
|
172
172
|
const cumulativeLayoutShiftMainFrame = await run(mainFrameShiftEvents.map(e => e.event));
|
|
@@ -38,10 +38,8 @@ async function getComputationDataParamsFromTrace(data, context) {
|
|
|
38
38
|
|
|
39
39
|
const graph = await PageDependencyGraph.request({...data, fromTrace: true}, context);
|
|
40
40
|
const traceEngineResult = await TraceEngineResult.request(data, context);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
const processedNavigation = Lantern.TraceEngineComputationData.createProcessedNavigation(
|
|
44
|
-
traceEngineResult.data, frameId, navigationId);
|
|
41
|
+
const processedNavigation =
|
|
42
|
+
Lantern.TraceEngineComputationData.createProcessedNavigation(traceEngineResult.data);
|
|
45
43
|
const simulator = data.simulator || (await LoadSimulator.request(data, context));
|
|
46
44
|
|
|
47
45
|
return {simulator, graph, processedNavigation};
|
|
@@ -11,6 +11,6 @@ declare class NavigationInsights {
|
|
|
11
11
|
* @param {LH.Trace} trace
|
|
12
12
|
* @param {LH.Artifacts.ComputedContext} context
|
|
13
13
|
*/
|
|
14
|
-
static compute_(trace: LH.Trace, context: LH.Artifacts.ComputedContext): Promise<import("@paulirish/trace_engine/models/trace/insights/types.js").
|
|
14
|
+
static compute_(trace: LH.Trace, context: LH.Artifacts.ComputedContext): Promise<import("@paulirish/trace_engine/models/trace/insights/types.js").NavigationInsightData>;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=navigation-insights.d.ts.map
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import log from 'lighthouse-logger';
|
|
8
|
-
|
|
9
7
|
import * as Lantern from '../lib/lantern/lantern.js';
|
|
10
8
|
import {makeComputedArtifact} from './computed-artifact.js';
|
|
11
9
|
import {NetworkRecords} from './network-records.js';
|
|
@@ -18,17 +16,7 @@ class NetworkAnalysis {
|
|
|
18
16
|
*/
|
|
19
17
|
static async compute_(devtoolsLog, context) {
|
|
20
18
|
const records = await NetworkRecords.request(devtoolsLog, context);
|
|
21
|
-
|
|
22
|
-
if (!analysis) {
|
|
23
|
-
log.error('NetworkAnalysis', 'Network analysis failed due to lack of transfer data');
|
|
24
|
-
return {
|
|
25
|
-
throughput: 0,
|
|
26
|
-
rtt: Number.POSITIVE_INFINITY,
|
|
27
|
-
additionalRttByOrigin: new Map(),
|
|
28
|
-
serverResponseTimeByOrigin: new Map(),
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
return analysis;
|
|
19
|
+
return Lantern.Core.NetworkAnalyzer.analyze(records);
|
|
32
20
|
}
|
|
33
21
|
}
|
|
34
22
|
|
|
@@ -13,10 +13,6 @@ declare class TraceEngineResult {
|
|
|
13
13
|
* @return {Promise<LH.Artifacts.TraceEngineResult>}
|
|
14
14
|
*/
|
|
15
15
|
static runTraceEngine(traceEvents: LH.TraceEvent[]): Promise<LH.Artifacts.TraceEngineResult>;
|
|
16
|
-
/**
|
|
17
|
-
* @param {import('@paulirish/trace_engine/models/trace/insights/types.js').TraceInsightSets} insightSets
|
|
18
|
-
*/
|
|
19
|
-
static localizeInsights(insightSets: import("@paulirish/trace_engine/models/trace/insights/types.js").TraceInsightSets): void;
|
|
20
16
|
/**
|
|
21
17
|
* @param {{trace: LH.Trace}} data
|
|
22
18
|
* @param {LH.Artifacts.ComputedContext} context
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import * as i18n from '../lib/i18n/i18n.js';
|
|
8
7
|
import * as TraceEngine from '../lib/trace-engine.js';
|
|
9
8
|
import {makeComputedArtifact} from './computed-artifact.js';
|
|
10
9
|
import {CumulativeLayoutShift} from './metrics/cumulative-layout-shift.js';
|
|
@@ -31,37 +30,12 @@ class TraceEngineResult {
|
|
|
31
30
|
const processor = new TraceEngine.TraceProcessor(traceHandlers);
|
|
32
31
|
|
|
33
32
|
// eslint-disable-next-line max-len
|
|
34
|
-
await processor.parse(/** @type {import('@paulirish/trace_engine').Types.
|
|
33
|
+
await processor.parse(/** @type {import('@paulirish/trace_engine').Types.TraceEvents.TraceEventData[]} */ (
|
|
35
34
|
traceEvents
|
|
36
|
-
)
|
|
37
|
-
if (!processor.
|
|
35
|
+
));
|
|
36
|
+
if (!processor.traceParsedData) throw new Error('No data');
|
|
38
37
|
if (!processor.insights) throw new Error('No insights');
|
|
39
|
-
|
|
40
|
-
return {data: processor.parsedTrace, insights: processor.insights};
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* @param {import('@paulirish/trace_engine/models/trace/insights/types.js').TraceInsightSets} insightSets
|
|
45
|
-
*/
|
|
46
|
-
static localizeInsights(insightSets) {
|
|
47
|
-
for (const insightSet of insightSets.values()) {
|
|
48
|
-
for (const [name, model] of Object.entries(insightSet.model)) {
|
|
49
|
-
if (model instanceof Error) {
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const key = `node_modules/@paulirish/trace_engine/models/trace/insights/${name}.js`;
|
|
54
|
-
const str_ = i18n.createIcuMessageFn(key, {
|
|
55
|
-
title: model.title,
|
|
56
|
-
description: model.description,
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
// @ts-expect-error coerce to string, should be fine
|
|
60
|
-
model.title = str_(model.title);
|
|
61
|
-
// @ts-expect-error coerce to string, should be fine
|
|
62
|
-
model.description = str_(model.description);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
38
|
+
return {data: processor.traceParsedData, insights: processor.insights};
|
|
65
39
|
}
|
|
66
40
|
|
|
67
41
|
/**
|
|
@@ -192,8 +192,6 @@ const defaultConfig = {
|
|
|
192
192
|
'valid-source-maps',
|
|
193
193
|
'prioritize-lcp-image',
|
|
194
194
|
'csp-xss',
|
|
195
|
-
'has-hsts',
|
|
196
|
-
'origin-isolation',
|
|
197
195
|
'script-treemap-data',
|
|
198
196
|
'accessibility/accesskeys',
|
|
199
197
|
'accessibility/aria-allowed-attr',
|
|
@@ -543,8 +541,6 @@ const defaultConfig = {
|
|
|
543
541
|
{id: 'geolocation-on-start', weight: 1, group: 'best-practices-trust-safety'},
|
|
544
542
|
{id: 'notification-on-start', weight: 1, group: 'best-practices-trust-safety'},
|
|
545
543
|
{id: 'csp-xss', weight: 0, group: 'best-practices-trust-safety'},
|
|
546
|
-
{id: 'has-hsts', weight: 0, group: 'best-practices-trust-safety'},
|
|
547
|
-
{id: 'origin-isolation', weight: 0, group: 'best-practices-trust-safety'},
|
|
548
544
|
// User Experience
|
|
549
545
|
{id: 'paste-preventing-inputs', weight: 3, group: 'best-practices-ux'},
|
|
550
546
|
{id: 'image-aspect-ratio', weight: 1, group: 'best-practices-ux'},
|
|
@@ -221,9 +221,8 @@ class FontSize extends BaseGatherer {
|
|
|
221
221
|
|
|
222
222
|
const nodeIndex = doc.layout.nodeIndex[layoutIndex];
|
|
223
223
|
const styles = doc.layout.styles[layoutIndex];
|
|
224
|
-
const [fontSizeStringId
|
|
224
|
+
const [fontSizeStringId] = styles;
|
|
225
225
|
const fontSize = getFloat(fontSizeStringId);
|
|
226
|
-
const visibility = getString(visibilityStringId);
|
|
227
226
|
|
|
228
227
|
const parentIndex = nodes.parentIndex[nodeIndex];
|
|
229
228
|
const grandParentIndex = nodes.parentIndex[parentIndex];
|
|
@@ -235,7 +234,6 @@ class FontSize extends BaseGatherer {
|
|
|
235
234
|
nodeIndex,
|
|
236
235
|
backendNodeId: nodes.backendNodeId[nodeIndex],
|
|
237
236
|
fontSize,
|
|
238
|
-
visibility,
|
|
239
237
|
textLength: getTextLength(text),
|
|
240
238
|
parentNode: {
|
|
241
239
|
...parentNode,
|
|
@@ -259,24 +257,17 @@ class FontSize extends BaseGatherer {
|
|
|
259
257
|
let failingTextLength = 0;
|
|
260
258
|
|
|
261
259
|
for (const textNodeData of this.getTextNodesInLayoutFromSnapshot(snapshot)) {
|
|
262
|
-
if (textNodeData.visibility === 'hidden') {
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
260
|
totalTextLength += textNodeData.textLength;
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
261
|
+
if (textNodeData.fontSize < MINIMAL_LEGIBLE_FONT_SIZE_PX) {
|
|
262
|
+
// Once a bad TextNode is identified, its parent Node is needed.
|
|
263
|
+
failingTextLength += textNodeData.textLength;
|
|
264
|
+
failingNodes.push({
|
|
265
|
+
nodeId: 0, // Set later in fetchFailingNodeSourceRules.
|
|
266
|
+
parentNode: textNodeData.parentNode,
|
|
267
|
+
textLength: textNodeData.textLength,
|
|
268
|
+
fontSize: textNodeData.fontSize,
|
|
269
|
+
});
|
|
270
270
|
}
|
|
271
|
-
|
|
272
|
-
// Once a bad TextNode is identified, its parent Node is needed.
|
|
273
|
-
failingTextLength += textNodeData.textLength;
|
|
274
|
-
failingNodes.push({
|
|
275
|
-
nodeId: 0, // Set later in fetchFailingNodeSourceRules.
|
|
276
|
-
parentNode: textNodeData.parentNode,
|
|
277
|
-
textLength: textNodeData.textLength,
|
|
278
|
-
fontSize: textNodeData.fontSize,
|
|
279
|
-
});
|
|
280
271
|
}
|
|
281
272
|
|
|
282
273
|
return {totalTextLength, failingTextLength, failingNodes};
|
|
@@ -303,7 +294,7 @@ class FontSize extends BaseGatherer {
|
|
|
303
294
|
|
|
304
295
|
// Get the computed font-size style of every node.
|
|
305
296
|
const snapshot = await session.sendCommand('DOMSnapshot.captureSnapshot', {
|
|
306
|
-
computedStyles: ['font-size'
|
|
297
|
+
computedStyles: ['font-size'],
|
|
307
298
|
});
|
|
308
299
|
|
|
309
300
|
const {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type SyntheticLayoutShift = import("@paulirish/trace_engine").Types.
|
|
1
|
+
export type SyntheticLayoutShift = import("@paulirish/trace_engine").Types.TraceEvents.SyntheticLayoutShift;
|
|
2
2
|
export type SaneSyntheticLayoutShift = SyntheticLayoutShift & {
|
|
3
3
|
args: {
|
|
4
4
|
data: NonNullable<SyntheticLayoutShift["args"]["data"]>;
|
package/core/lib/trace-engine.js
CHANGED
|
@@ -2,7 +2,7 @@ import * as TraceEngine from '@paulirish/trace_engine';
|
|
|
2
2
|
|
|
3
3
|
import {polyfillDOMRect} from './polyfill-dom-rect.js';
|
|
4
4
|
|
|
5
|
-
/** @typedef {import('@paulirish/trace_engine').Types.
|
|
5
|
+
/** @typedef {import('@paulirish/trace_engine').Types.TraceEvents.SyntheticLayoutShift} SyntheticLayoutShift */
|
|
6
6
|
/** @typedef {SyntheticLayoutShift & {args: {data: NonNullable<SyntheticLayoutShift['args']['data']>}}} SaneSyntheticLayoutShift */
|
|
7
7
|
|
|
8
8
|
polyfillDOMRect();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lighthouse",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "12.2.3
|
|
4
|
+
"version": "12.2.3",
|
|
5
5
|
"description": "Automated auditing, performance metrics, and best practices for the web.",
|
|
6
6
|
"main": "./core/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
"webtreemap-cdt": "^3.2.1"
|
|
182
182
|
},
|
|
183
183
|
"dependencies": {
|
|
184
|
-
"@paulirish/trace_engine": "0.0.
|
|
184
|
+
"@paulirish/trace_engine": "0.0.32",
|
|
185
185
|
"@sentry/node": "^7.0.0",
|
|
186
186
|
"axe-core": "^4.10.2",
|
|
187
187
|
"chrome-launcher": "^1.1.2",
|
|
@@ -2621,66 +2621,6 @@
|
|
|
2621
2621
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
2622
2622
|
"message": "Lighthouse User Flow Report"
|
|
2623
2623
|
},
|
|
2624
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2625
|
-
"message": "تحدث تغييرات التصميم عندما تتحرك العناصر بدون أي تدخُّل من المستخدم. [تحقَّق من أسباب تغييرات التصميم](https://web.dev/articles/optimize-cls)، مثل إضافة عناصر أو إزالتها أو تغيير خطوطها أثناء تحميل الصفحة."
|
|
2626
|
-
},
|
|
2627
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
|
-
"message": "أسباب تغييرات التصميم"
|
|
2629
|
-
},
|
|
2630
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
|
-
"message": "طلب الشبكة الأول هو الأهم. يمكنك تقليل وقت الاستجابة للطلب عن طريق تجنُّب عمليات إعادة التوجيه وضمان استجابة الخادم بسرعة وتفعيل ميزة ضغط النص."
|
|
2632
|
-
},
|
|
2633
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
|
|
2634
|
-
"message": "وقت الاستجابة لطلب المستند"
|
|
2635
|
-
},
|
|
2636
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
|
|
2637
|
-
"message": "يمكنك ضبط [font-display](https://developer.chrome.com/blog/font-display) على swap أو optional لضمان ظهور النص بشكل ثابت. ويمكن تحسين swap بشكل أكبر للتخفيف من تغييرات التصميم باستخدام [إجراءات تجاوز مقاييس الخطوط](https://developer.chrome.com/blog/font-fallbacks)."
|
|
2638
|
-
},
|
|
2639
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
|
-
"message": "عرض الخط"
|
|
2641
|
-
},
|
|
2642
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
|
-
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2644
|
-
},
|
|
2645
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2646
|
-
"message": "مدى استجابة الصفحة لتفاعلات المستخدم (INP) حسب المرحلة"
|
|
2647
|
-
},
|
|
2648
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2649
|
-
"message": "يمكنك تحسين مقياس سرعة عرض أكبر محتوى مرئي (LCP) من خلال جعل صورة مقياس LCP [قابلة للاكتشاف](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) من HTML على الفور، و[تجنُّب التحميل الكسول](https://web.dev/articles/lcp-lazy-loading)."
|
|
2650
|
-
},
|
|
2651
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2652
|
-
"message": "الاطّلاع على طلبات LCP"
|
|
2653
|
-
},
|
|
2654
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2655
|
-
"message": "لكل [مرحلة استراتيجيات تحسين محدَّدة](https://web.dev/articles/optimize-lcp#lcp-breakdown). ومن الأفضل أن يتم قضاء معظم وقت سرعة عرض أكبر محتوى مرئي (LCP) في تحميل الموارد، وليس في التأخيرات."
|
|
2656
|
-
},
|
|
2657
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2658
|
-
"message": "سرعة عرض أكبر محتوى مرئي (LCP) حسب المرحلة"
|
|
2659
|
-
},
|
|
2660
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2661
|
-
"message": "تؤدي الطلبات إلى حظر العرض الأوّلي للصفحة، ما قد يُبطئ سرعة عرض أكبر محتوى مرئي (LCP). ويمكن [تأجيل هذه الطلبات](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/) أو تضمينها لإخراجها من المسار الحرج."
|
|
2662
|
-
},
|
|
2663
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
|
|
2664
|
-
"message": "طلبات حظر العرض"
|
|
2665
|
-
},
|
|
2666
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
|
|
2667
|
-
"message": "إذا ظلت تكاليف ميزة \"إعادة احتساب النمط\" مرتفعة، يمكن أن يؤدي تحسين أداة الاختيار إلى خفضها. يمكنك [تحسين أدوات الاختيار](https://developer.chrome.com/docs/devtools/performance/selector-stats) من خلال زيادة الوقت المنقضي وزيادة النسبة المئوية للمسار البطيء. وسيؤدي استخدام أدوات الاختيار الأبسط وعدد أدوات الاختيار الأقل ونموذج DOM الأصغر ونموذج DOM الأقل تعقيدًا إلى تقليل تكاليف المطابقة."
|
|
2668
|
-
},
|
|
2669
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
|
|
2670
|
-
"message": "تكاليف أداة اختيار لغة CSS"
|
|
2671
|
-
},
|
|
2672
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2673
|
-
"message": "يمكن أن يؤثر الرمز البرمجي التابع لجهة خارجية بشكل كبير في أداء التحميل. [يمكنك تقليل تحميل الرموز البرمجية التابعة لجهات خارجية وتأجيله](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)، ومنح الأولوية لمحتوى صفحتك."
|
|
2674
|
-
},
|
|
2675
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
|
|
2676
|
-
"message": "الجهات الخارجية"
|
|
2677
|
-
},
|
|
2678
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
-
"message": "إنّ إطار عرض الصفحة غير محسّن للأجهزة الجوّالة، لذا قد يتم [تأخير التفاعلات التي تتم من خلال النقر بمقدار 300 ملي ثانية على الأكثر](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2680
|
-
},
|
|
2681
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
-
"message": "إطار العرض غير محسَّن للأجهزة الجوّالة"
|
|
2683
|
-
},
|
|
2684
2624
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2685
2625
|
"message": "For animated content, use [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) to minimize CPU usage when the content is offscreen."
|
|
2686
2626
|
},
|
|
@@ -2621,66 +2621,6 @@
|
|
|
2621
2621
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
2622
2622
|
"message": "تقرير تدفق المستخدمين في أداة Lighthouse"
|
|
2623
2623
|
},
|
|
2624
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2625
|
-
"message": "تحدث تغييرات التصميم عندما تتحرك العناصر بدون أي تدخُّل من المستخدم. [تحقَّق من أسباب تغييرات التصميم](https://web.dev/articles/optimize-cls)، مثل إضافة عناصر أو إزالتها أو تغيير خطوطها أثناء تحميل الصفحة."
|
|
2626
|
-
},
|
|
2627
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
|
-
"message": "أسباب تغييرات التصميم"
|
|
2629
|
-
},
|
|
2630
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
|
-
"message": "طلب الشبكة الأول هو الأهم. يمكنك تقليل وقت الاستجابة للطلب عن طريق تجنُّب عمليات إعادة التوجيه وضمان استجابة الخادم بسرعة وتفعيل ميزة ضغط النص."
|
|
2632
|
-
},
|
|
2633
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
|
|
2634
|
-
"message": "وقت الاستجابة لطلب المستند"
|
|
2635
|
-
},
|
|
2636
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
|
|
2637
|
-
"message": "يمكنك ضبط [font-display](https://developer.chrome.com/blog/font-display) على swap أو optional لضمان ظهور النص بشكل ثابت. ويمكن تحسين swap بشكل أكبر للتخفيف من تغييرات التصميم باستخدام [إجراءات تجاوز مقاييس الخطوط](https://developer.chrome.com/blog/font-fallbacks)."
|
|
2638
|
-
},
|
|
2639
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
|
-
"message": "عرض الخط"
|
|
2641
|
-
},
|
|
2642
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
|
-
"message": "ابدأ بالتحقيق في المرحلة الأطول. [يمكن تقليل التأخيرات](https://web.dev/articles/optimize-inp#optimize_interactions). ولتقليل مدة المعالجة، [حسِّن تكاليف سلسلة التعليمات الرئيسية](https://web.dev/articles/optimize-long-tasks)، والتي تكون في الغالب بيانات JavaScript."
|
|
2644
|
-
},
|
|
2645
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2646
|
-
"message": "مدى استجابة الصفحة لتفاعلات المستخدم (INP) حسب المرحلة"
|
|
2647
|
-
},
|
|
2648
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2649
|
-
"message": "يمكنك تحسين مقياس سرعة عرض أكبر محتوى مرئي (LCP) من خلال جعل صورة مقياس LCP [قابلة للاكتشاف](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) من HTML على الفور، و[تجنُّب التحميل الكسول](https://web.dev/articles/lcp-lazy-loading)."
|
|
2650
|
-
},
|
|
2651
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2652
|
-
"message": "الاطّلاع على طلبات LCP"
|
|
2653
|
-
},
|
|
2654
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2655
|
-
"message": "لكل [مرحلة استراتيجيات تحسين محدَّدة](https://web.dev/articles/optimize-lcp#lcp-breakdown). ومن الأفضل أن يتم قضاء معظم وقت سرعة عرض أكبر محتوى مرئي (LCP) في تحميل الموارد، وليس في التأخيرات."
|
|
2656
|
-
},
|
|
2657
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2658
|
-
"message": "سرعة عرض أكبر محتوى مرئي (LCP) حسب المرحلة"
|
|
2659
|
-
},
|
|
2660
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2661
|
-
"message": "تؤدي الطلبات إلى حظر العرض الأوّلي للصفحة، ما قد يُبطئ سرعة عرض أكبر محتوى مرئي (LCP). ويمكن [تأجيل هذه الطلبات](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/) أو تضمينها لإخراجها من المسار الحرج."
|
|
2662
|
-
},
|
|
2663
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
|
|
2664
|
-
"message": "طلبات حظر العرض"
|
|
2665
|
-
},
|
|
2666
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
|
|
2667
|
-
"message": "إذا ظلت تكاليف ميزة \"إعادة احتساب النمط\" مرتفعة، يمكن أن يؤدي تحسين أداة الاختيار إلى خفضها. يمكنك [تحسين أدوات الاختيار](https://developer.chrome.com/docs/devtools/performance/selector-stats) من خلال زيادة الوقت المنقضي وزيادة النسبة المئوية للمسار البطيء. وسيؤدي استخدام أدوات الاختيار الأبسط وعدد أدوات الاختيار الأقل ونموذج DOM الأصغر ونموذج DOM الأقل تعقيدًا إلى تقليل تكاليف المطابقة."
|
|
2668
|
-
},
|
|
2669
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
|
|
2670
|
-
"message": "تكاليف أداة اختيار لغة CSS"
|
|
2671
|
-
},
|
|
2672
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2673
|
-
"message": "يمكن أن يؤثر الرمز البرمجي التابع لجهة خارجية بشكل كبير في أداء التحميل. [يمكنك تقليل تحميل الرموز البرمجية التابعة لجهات خارجية وتأجيله](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)، ومنح الأولوية لمحتوى صفحتك."
|
|
2674
|
-
},
|
|
2675
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
|
|
2676
|
-
"message": "الجهات الخارجية"
|
|
2677
|
-
},
|
|
2678
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
-
"message": "إنّ إطار عرض الصفحة غير محسّن للأجهزة الجوّالة، لذا قد يتم [تأخير التفاعلات التي تتم من خلال النقر بمقدار 300 ملي ثانية على الأكثر](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2680
|
-
},
|
|
2681
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
-
"message": "إطار العرض غير محسَّن للأجهزة الجوّالة"
|
|
2683
|
-
},
|
|
2684
2624
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2685
2625
|
"message": "بالنسبة إلى المحتوى الذي يتضمن صورًا متحركة، يمكنك استخدام [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) لتقليل استخدام وحدة المعالجة المركزية (CPU) عندما يكون المحتوى خارج الشاشة."
|
|
2686
2626
|
},
|
|
@@ -2621,66 +2621,6 @@
|
|
|
2621
2621
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
2622
2622
|
"message": "Отчет на Lighthouse за потребителската навигация"
|
|
2623
2623
|
},
|
|
2624
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2625
|
-
"message": "Структурни промени настъпват, когато елементите се преместват без взаимодействие от страна на потребителя. [Проучете причините за структурните промени](https://web.dev/articles/optimize-cls), като например добавяне или премахване на елементи или промяна на шрифтовете им при зареждане на страницата."
|
|
2626
|
-
},
|
|
2627
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
|
-
"message": "Причинители на структурни промени"
|
|
2629
|
-
},
|
|
2630
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
|
-
"message": "Първата мрежова заявка е най-важна. Намалете забавянето ѝ, като избягвате пренасочвания, осигурявате бърз отговор от сървъра и активирате компресирането на текста."
|
|
2632
|
-
},
|
|
2633
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
|
|
2634
|
-
"message": "Забавяне на заявката за документ"
|
|
2635
|
-
},
|
|
2636
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
|
|
2637
|
-
"message": "Добре е да зададете swap или optional за [font-display](https://developer.chrome.com/blog/font-display), така че текстът да е постоянно видим. swap може да се оптимизира допълнително чрез [замяна на метриките на шрифта](https://developer.chrome.com/blog/font-fallbacks), за да се намалят разместванията в оформлението."
|
|
2638
|
-
},
|
|
2639
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
|
-
"message": "Показване на шрифта"
|
|
2641
|
-
},
|
|
2642
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
|
-
"message": "Започнете проверката от най-продължителната фаза. [Забавянията могат да бъдат сведени до минимум](https://web.dev/articles/optimize-inp#optimize_interactions). За да ускорите обработката, [оптимизирайте работата на основната нишка](https://web.dev/articles/optimize-long-tasks), която често е JS."
|
|
2644
|
-
},
|
|
2645
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2646
|
-
"message": "INP по фаза"
|
|
2647
|
-
},
|
|
2648
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2649
|
-
"message": "Оптимизирайте LCP, като направите изображението, представляващо LCP, незабавно [откриваемо](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) в HTML кода и [избягвате забавеното зареждане](https://web.dev/articles/lcp-lazy-loading)"
|
|
2650
|
-
},
|
|
2651
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2652
|
-
"message": "Откриване на заявките за LCP"
|
|
2653
|
-
},
|
|
2654
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2655
|
-
"message": "За всяка [фаза има конкретни стратегии за подобряване](https://web.dev/articles/optimize-lcp#lcp-breakdown). В идеалния случай по-голямата част от времето за LCP трябва да премине в зареждане на ресурсите, а не да е свързана със забавяния."
|
|
2656
|
-
},
|
|
2657
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2658
|
-
"message": "LCP по фаза"
|
|
2659
|
-
},
|
|
2660
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2661
|
-
"message": "Заявки блокират първоначалното рендериране на страницата, което може да забави LCP. Тези заявки могат да бъдат преместени извън критичния път чрез [отлагане или вграждане](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/)."
|
|
2662
|
-
},
|
|
2663
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
|
|
2664
|
-
"message": "Заявки за блокиране на рендерирането"
|
|
2665
|
-
},
|
|
2666
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
|
|
2667
|
-
"message": "Ако преизчисляването на стиловете продължава да отнема дълго време, оптимизирането на селекторите може да намали забавянето. [Оптимизирайте селекторите](https://developer.chrome.com/docs/devtools/performance/selector-stats), които отнемат повече време и имат по-голям процент несъответствия с бавен път. Опростяването на селекторите и намаляването на броя им, както и намаляването на размера и дълбочината на DOM ще ускорят намирането на съответствия."
|
|
2668
|
-
},
|
|
2669
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
|
|
2670
|
-
"message": "Бавни CSS селектори"
|
|
2671
|
-
},
|
|
2672
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2673
|
-
"message": "Кодът от трети страни може сериозно да повлияе върху скоростта на зареждане. [Намалете и отложете зареждането на кода от трети страни](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/), за да приоритизирате съдържанието на страницата си."
|
|
2674
|
-
},
|
|
2675
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
|
|
2676
|
-
"message": "Трети страни"
|
|
2677
|
-
},
|
|
2678
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
-
"message": "Прозоречният изглед на страницата не е оптимизиран за мобилни устройства, така че при взаимодействията с докосване може да има [забавяне до 300 мсек](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2680
|
-
},
|
|
2681
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
-
"message": "Прозоречният изглед не е оптимизиран за мобилни устройства"
|
|
2683
|
-
},
|
|
2684
2624
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2685
2625
|
"message": "При анимирано съдържание използвайте маркера [`amp-anim`](https://amp.dev/documentation/components/amp-anim/), за да намалите използването на процесора, когато съдържанието е извън екрана."
|
|
2686
2626
|
},
|
|
@@ -2621,66 +2621,6 @@
|
|
|
2621
2621
|
"flow-report/src/i18n/ui-strings.js | title": {
|
|
2622
2622
|
"message": "Informe del flux d'usuaris de Lighthouse"
|
|
2623
2623
|
},
|
|
2624
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | description": {
|
|
2625
|
-
"message": "Els canvis de disseny es produeixen quan es mouen elements sense que l'usuari hi interaccioni. [Investiga les causes dels canvis de disseny](https://web.dev/articles/optimize-cls), com ara que s'afegeixin elements, se'n suprimeixin o se'n canviï la font a mesura que es carrega la pàgina."
|
|
2626
|
-
},
|
|
2627
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/CLSCulprits.js | title": {
|
|
2628
|
-
"message": "Causants del canvi de disseny"
|
|
2629
|
-
},
|
|
2630
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | description": {
|
|
2631
|
-
"message": "La primera sol·licitud de xarxa és la més important. Per reduir-ne la latència, evita les redireccions, assegura't que el servidor respongui amb rapidesa i activa la compressió de text."
|
|
2632
|
-
},
|
|
2633
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/DocumentLatency.js | title": {
|
|
2634
|
-
"message": "Latència de la sol·licitud del document"
|
|
2635
|
-
},
|
|
2636
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | description": {
|
|
2637
|
-
"message": "Prova d'establir [font-display](https://developer.chrome.com/blog/font-display) en swap o optional per assegurar-te que el text es vegi de manera coherent. swap es pot optimitzar encara més per mitigar els canvis de disseny amb [anul·lacions de mètriques de fonts](https://developer.chrome.com/blog/font-fallbacks)."
|
|
2638
|
-
},
|
|
2639
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/FontDisplay.js | title": {
|
|
2640
|
-
"message": "Visualització de la font"
|
|
2641
|
-
},
|
|
2642
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | description": {
|
|
2643
|
-
"message": "Comença a investigar amb la fase més llarga. [Els retards es poden minimitzar](https://web.dev/articles/optimize-inp#optimize_interactions). Per reduir la durada del processament, [optimitza els costos del fil principal](https://web.dev/articles/optimize-long-tasks), sovint JavaScript."
|
|
2644
|
-
},
|
|
2645
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/InteractionToNextPaint.js | title": {
|
|
2646
|
-
"message": "INP per fase"
|
|
2647
|
-
},
|
|
2648
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | description": {
|
|
2649
|
-
"message": "Optimitza l'LCP fent que la imatge LCP sigui [detectable](https://web.dev/articles/optimize-lcp#1_eliminate_resource_load_delay) immediatament des de l'HTML i [evitant la càrrega lenta](https://web.dev/articles/lcp-lazy-loading)"
|
|
2650
|
-
},
|
|
2651
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPDiscovery.js | title": {
|
|
2652
|
-
"message": "Detecció de sol·licituds d'LCP"
|
|
2653
|
-
},
|
|
2654
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | description": {
|
|
2655
|
-
"message": "Cada [fase té estratègies de millora específiques](https://web.dev/articles/optimize-lcp#lcp-breakdown). Idealment, la majoria del temps de l'LCP s'hauria de dedicar a carregar els recursos, i no hauria de consistir en retards."
|
|
2656
|
-
},
|
|
2657
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/LCPPhases.js | title": {
|
|
2658
|
-
"message": "LCP per fase"
|
|
2659
|
-
},
|
|
2660
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | description": {
|
|
2661
|
-
"message": "Les sol·licituds estan bloquejant la renderització inicial de la pàgina, cosa que pot retardar l'LCP. [Ajornar o inserir](https://web.dev/learn/performance/understanding-the-critical-path#render-blocking_resources/) pot treure aquestes sol·licituds de xarxa del camí crític."
|
|
2662
|
-
},
|
|
2663
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/RenderBlocking.js | title": {
|
|
2664
|
-
"message": "Sol·licituds de bloqueig de la renderització"
|
|
2665
|
-
},
|
|
2666
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | description": {
|
|
2667
|
-
"message": "Si els costos de Torna a calcular l'estil continuen sent alts, es poden reduir optimitzant els selectors. [Optimitza els selectors](https://developer.chrome.com/docs/devtools/performance/selector-stats) en què el temps transcorregut i el percentatge de camí lent siguin elevats. Els costos de coincidència es poden reduir utilitzant selectors més senzills, un menor nombre de selectors, un DOM més petit i un DOM més superficial."
|
|
2668
|
-
},
|
|
2669
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/SlowCSSSelector.js | title": {
|
|
2670
|
-
"message": "Costos del selector CSS"
|
|
2671
|
-
},
|
|
2672
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | description": {
|
|
2673
|
-
"message": "El codi de tercers pot afectar significativament el rendiment de la càrrega. [Redueix i ajorna la càrrega de codi de tercers](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/) per prioritzar el contingut de la pàgina."
|
|
2674
|
-
},
|
|
2675
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/ThirdParties.js | title": {
|
|
2676
|
-
"message": "Tercers"
|
|
2677
|
-
},
|
|
2678
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | description": {
|
|
2679
|
-
"message": "La finestra gràfica de la pàgina no està optimitzada per a mòbils, de manera que les interaccions amb tocs poden [retardar-se fins a 300 ms](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)."
|
|
2680
|
-
},
|
|
2681
|
-
"node_modules/@paulirish/trace_engine/models/trace/insights/Viewport.js | title": {
|
|
2682
|
-
"message": "La finestra gràfica no està optimitzada per a mòbils"
|
|
2683
|
-
},
|
|
2684
2624
|
"node_modules/lighthouse-stack-packs/packs/amp.js | efficient-animated-content": {
|
|
2685
2625
|
"message": "En el cas de contingut animat, fes servir [`amp-anim`](https://amp.dev/documentation/components/amp-anim/) per minimitzar l'ús de la CPU quan el contingut és fora de la pantalla."
|
|
2686
2626
|
},
|