| Conditions | 2 |
| Paths | 2 |
| Total Lines | 21 |
| Code Lines | 12 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 35 | public function evaluate() |
||
| 36 | { |
||
| 37 | // See if there are too many database queries |
||
| 38 | if ($this->sample->firstContentfulPaint >= self::MAX_FIRST_CONTENTFUL_PAINT_TIME) { |
||
| 39 | $displayFirstContentfulPaint = ($this->sample->firstContentfulPaint / 1000) . 's'; |
||
| 40 | $this->hasRecommendation = true; |
||
| 41 | $this->summary = Craft::t( |
||
| 42 | 'webperf', |
||
| 43 | 'The wait is too long before content is displayed', |
||
| 44 | [] |
||
| 45 | ); |
||
| 46 | $this->detail = Craft::t( |
||
| 47 | 'webperf', |
||
| 48 | 'The first contentful paint took {displayFirstContentfulPaint}. Try to avoid blocking the render by implementing [CriticalCSS](https://nystudio107.com/blog/implementing-critical-css), optimizing the [Critical Path](https://developers.google.com/web/fundamentals/performance/critical-rendering-path/) by loading JavaScript asynchronously, and using the [font-display](https://css-tricks.com/font-display-masses/) property.', |
||
| 49 | [ |
||
| 50 | 'displayFirstContentfulPaint' => $displayFirstContentfulPaint, |
||
| 51 | ] |
||
| 52 | ); |
||
| 53 | $this->learnMoreUrl = 'https://developers.google.com/web/tools/lighthouse/audits/first-contentful-paint'; |
||
| 54 | |||
| 55 | return; |
||
| 56 | } |
||
| 59 |