Skip to content

Commit ec91bff

Browse files
committed
defer loading scripts
* mark defer loading Java Scripts (use `async` and `onload`) * split into separated files
1 parent 26df080 commit ec91bff

File tree

4 files changed

+64
-45
lines changed

4 files changed

+64
-45
lines changed

_layouts/default.html

Lines changed: 15 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -15,60 +15,30 @@
1515
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
1616
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
1717
{% seo %}
18-
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
19-
<script>
20-
(function(doc, script) {
21-
window.___gcfg = {lang: 'ja'};
22-
//Async Social Buttons
23-
var fjs = doc.getElementsByTagName(script)[0];
24-
var add = function(url, id) {
25-
if (doc.getElementById(id)) {return;}
26-
var js = doc.createElement(script);
27-
js.src = url;
28-
id && (js.id = id);
29-
fjs.parentNode.insertBefore(js, fjs);
30-
};
3118

32-
// Twitter SDK
33-
add('//platform.twitter.com/widgets.js', 'twitter-wjs');
34-
// Google+ button
35-
add('//apis.google.com/js/plusone.js');
36-
// Facebook SDK
37-
add('//connect.facebook.net/ja_JP/all.js#xfbml=1', 'facebook-jssdk');
38-
// Hatena
39-
add('//b.st-hatena.com/js/bookmark_button_wo_al.js');
40-
})(document, 'script');
41-
</script>
19+
<!-- load jQuery -->
20+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
21+
22+
<!-- SNSボタンの読み込み -->
23+
<script src="/assets/javascripts/social-network-buttons.js" async></script>
4224

43-
<!-- 日本語マニュアル検索用 -->
25+
<!-- 日本語マニュアル検索ボックス -->
4426
<link rel="stylesheet" href="//www.google.com/cse/style/look/default.css" type="text/css" />
45-
<script src="//www.google.com/jsapi" type="text/javascript"></script>
46-
<script type="text/javascript">
47-
google.load("search", "1", {language : "ja"});
48-
google.setOnLoadCallback(function() {
49-
// search
50-
var customSearchControl = new google.search.CustomSearchControl("001325159752250591701:65aunpq8rlg");
51-
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
52-
var options = new google.search.DrawOptions();
53-
options.enableSearchboxOnly("//www.google.com/cse?cx=001325159752250591701:65aunpq8rlg");
54-
customSearchControl.draw('VimdocJaSearch', options);
55-
}, true);
27+
<script src="https://www.google.com/jsapi"></script>
28+
<script src="/assets/javascripts/search-vimdoc-ja.js"></script>
5629

57-
$.getJSON("//vim-jp.herokuapp.com/patches/json?callback=?", function(items) {
58-
$.each(items, function() {
59-
$('<li/>').append(
60-
$('<a/>').attr({'href': this.link, 'target': '_blank'}).text("Patch " + this.title)
61-
).append($('<br/>')).append($('<span/>').text(this.description)).appendTo('#patches-list');
62-
});
63-
});
64-
</script>
65-
<script type="text/javascript" src="/assets/javascripts/mousetrap.min.js"></script>
66-
<script type="text/javascript">
30+
<!-- パッチリスト読み込み -->
31+
<script src="/assets/javascripts/patch-list.js" async></script>
32+
33+
<!-- 隠しコマンド設定 -->
34+
<script src="/assets/javascripts/mousetrap.min.js"></script>
35+
<script defer>
6736
Mousetrap.bind("I space h a t e space V i m enter", function(e) {
6837
console.log(e);
6938
window.location = "http://www.gnu.org/software/emacs/";
7039
});
7140
</script>
41+
7242
</head>
7343
<body>
7444

assets/javascripts/patch-list.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
$(function() {
2+
'use strict';
3+
4+
$.getJSON("//vim-jp.herokuapp.com/patches/json?callback=?", function(items) {
5+
$.each(items, function() {
6+
$('<li/>').append(
7+
$('<a/>').attr({'href': this.link, 'target': '_blank'}).text("Patch " + this.title)
8+
).append($('<br/>')).append($('<span/>').text(this.description)).appendTo('#patches-list');
9+
});
10+
});
11+
});
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
(function(google) {
2+
'use strict';
3+
4+
google.load("search", "1", {language : "ja"});
5+
google.setOnLoadCallback(function() {
6+
// search
7+
var customSearchControl = new google.search.CustomSearchControl("001325159752250591701:65aunpq8rlg");
8+
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
9+
var options = new google.search.DrawOptions();
10+
options.enableSearchboxOnly("//www.google.com/cse?cx=001325159752250591701:65aunpq8rlg");
11+
customSearchControl.draw('VimdocJaSearch', options);
12+
}, true);
13+
})(google);
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use strict';
2+
3+
window.addEventListener('load', function() {
4+
(function(doc, script) {
5+
window.___gcfg = {lang: 'ja'};
6+
//Async Social Buttons
7+
var fjs = doc.getElementsByTagName(script)[0];
8+
var add = function(url, id) {
9+
if (doc.getElementById(id)) {return;}
10+
var js = doc.createElement(script);
11+
js.src = url;
12+
id && (js.id = id);
13+
fjs.parentNode.insertBefore(js, fjs);
14+
};
15+
16+
// Twitter SDK
17+
add('//platform.twitter.com/widgets.js', 'twitter-wjs');
18+
// Google+ button
19+
add('//apis.google.com/js/plusone.js');
20+
// Facebook SDK
21+
add('//connect.facebook.net/ja_JP/all.js#xfbml=1', 'facebook-jssdk');
22+
// Hatena
23+
add('//b.st-hatena.com/js/bookmark_button_wo_al.js');
24+
})(document, 'script');
25+
});

0 commit comments

Comments
 (0)