Skip to content

Commit 1c9127e

Browse files
committed
examples: Preload onmouseover images, so it's more responsive to the user.
1 parent efb5829 commit 1c9127e

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

build-scripts/build-web-examples.pl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ sub generate_example_thumbnail {
274274
my $project = shift;
275275
my $category = shift;
276276
my $example = shift;
277+
my $preloadhtmlref = shift;
277278

278279
my $example_no_num = "$example";
279280
$example_no_num =~ s/\A\d+\-//;
@@ -283,8 +284,10 @@ sub generate_example_thumbnail {
283284
my $example_mouseover_html = '';
284285
if ( -f "$examples_dir/$category/$example/onmouseover.webp" ) {
285286
$example_mouseover_html = "onmouseover=\"this.src='/$project/$category/$example/onmouseover.webp'\" onmouseout=\"this.src='$example_image_url';\"";
287+
$$preloadhtmlref .= " <link rel='preload' as='image' href='/$project/$category/$example/onmouseover.webp'>\n";
286288
} elsif ( -f "$examples_dir/$category/onmouseover.webp" ) {
287289
$example_mouseover_html = "onmouseover=\"this.src='/$project/$category/onmouseover.webp'\" onmouseout=\"this.src='$example_image_url';\"";
290+
$$preloadhtmlref .= " <link rel='preload' as='image' href='/$project/$category/onmouseover.webp'>\n";
288291
}
289292

290293
return "
@@ -300,10 +303,11 @@ sub generate_example_thumbnail {
300303
sub generate_example_thumbnails_for_category {
301304
my $project = shift;
302305
my $category = shift;
306+
my $preloadhtmlref = shift;
303307
my @examples = get_examples_for_category($category);
304308
my $retval = '';
305309
foreach my $example (@examples) {
306-
$retval .= generate_example_thumbnail($project, $category, $example);
310+
$retval .= generate_example_thumbnail($project, $category, $example, $preloadhtmlref);
307311
}
308312
return $retval;
309313
}
@@ -325,7 +329,8 @@ sub handle_category_dir {
325329

326330
closedir($dh);
327331

328-
my $examples_list_html = generate_example_thumbnails_for_category($project, $category);
332+
my $preloadhtml = '';
333+
my $examples_list_html = generate_example_thumbnails_for_category($project, $category, \$preloadhtml);
329334

330335
my $dst = "$output_dir/$category";
331336

@@ -345,6 +350,7 @@ sub handle_category_dir {
345350
s/\@project_name\@/$project/g;
346351
s/\@category_name\@/$category/g;
347352
s/\@category_description\@/$category_description/g;
353+
s/\@preload_images_html\@/$preloadhtml/g;
348354
s/\@examples_list_html\@/$examples_list_html/g;
349355
s/\@preview_image\@/$preview_image/g;
350356
$html .= $_;
@@ -396,12 +402,13 @@ sub handle_category_dir {
396402
closedir($dh);
397403

398404
# write homepage
399-
my $homepage_list_html = "";
405+
my $homepage_list_html = '';
406+
my $homepage_preloadhtml = '';
400407
foreach my $category (get_categories()) {
401408
my $category_description = get_category_description($category);
402409
$homepage_list_html .= "<h2>$category_description</h2>";
403410
$homepage_list_html .= "<div class='list'>";
404-
$homepage_list_html .= generate_example_thumbnails_for_category($project, $category);
411+
$homepage_list_html .= generate_example_thumbnails_for_category($project, $category, \$homepage_preloadhtml);
405412
$homepage_list_html .= "</div>";
406413
}
407414

@@ -414,6 +421,7 @@ sub handle_category_dir {
414421
s/\@project_name\@/$project/g;
415422
s/\@homepage_list_html\@/$homepage_list_html/g;
416423
s/\@preview_image\@/$preview_image/g;
424+
s/\@preload_images_html\@/$homepage_preloadhtml/g;
417425
$html .= $_;
418426
}
419427
close($htmltemplate);

examples/template-category.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1" />
77
<title>@project_name@ Examples: @category_description@</title>
88
<link rel="icon" href="/@project_name@/thumbnail.png" type="image/png" />
9+
10+
@preload_images_html@
11+
912
<link
1013
rel="stylesheet"
1114
type="text/css"
@@ -21,7 +24,6 @@
2124
<meta property="og:title" content="@project_name@ Examples: @category_description@">
2225
<meta property="og:description" content="@project_name@ Examples: @category_description@">
2326
<meta property="og:image" content="@preview_image@" />
24-
2527
</head>
2628
<body>
2729
<header>

examples/template-homepage.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1" />
77
<title>@project_name@ Examples</title>
88
<link rel="icon" href="/@project_name@/thumbnail.png" type="image/png" />
9+
10+
@preload_images_html@
11+
912
<link
1013
rel="stylesheet"
1114
type="text/css"

0 commit comments

Comments
 (0)