mirror of
https://github.com/golang/go
synced 2024-11-22 04:34:39 -07:00
doc: don't block page load on JavaScript fetch
R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/12050045
This commit is contained in:
parent
789e1c351e
commit
d920d8d849
@ -296,7 +296,7 @@ CodewalkViewer.prototype.updateHeight = function() {
|
|||||||
this.sizer.height(codeHeight);
|
this.sizer.height(codeHeight);
|
||||||
};
|
};
|
||||||
|
|
||||||
jQuery(document).ready(function() {
|
window.initFuncs.push(function() {
|
||||||
var viewer = new CodewalkViewer(jQuery('#codewalk-main'));
|
var viewer = new CodewalkViewer(jQuery('#codewalk-main'));
|
||||||
viewer.selectFirstComment();
|
viewer.selectFirstComment();
|
||||||
viewer.targetCommentLinksAtBlank();
|
viewer.targetCommentLinksAtBlank();
|
||||||
|
@ -163,6 +163,52 @@ function setupDropdownPlayground() {
|
|||||||
$('#menu').css('min-width', '+=60');
|
$('#menu').css('min-width', '+=60');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setupInlinePlayground() {
|
||||||
|
'use strict';
|
||||||
|
// Set up playground when each element is toggled.
|
||||||
|
$('div.play').each(function (i, el) {
|
||||||
|
// Set up playground for this example.
|
||||||
|
var setup = function() {
|
||||||
|
var code = $('.code', el);
|
||||||
|
playground({
|
||||||
|
'codeEl': code,
|
||||||
|
'outputEl': $('.output', el),
|
||||||
|
'runEl': $('.run', el),
|
||||||
|
'fmtEl': $('.fmt', el),
|
||||||
|
'shareEl': $('.share', el),
|
||||||
|
'shareRedirect': 'http://play.golang.org/p/'
|
||||||
|
});
|
||||||
|
|
||||||
|
// Make the code textarea resize to fit content.
|
||||||
|
var resize = function() {
|
||||||
|
code.height(0);
|
||||||
|
var h = code[0].scrollHeight;
|
||||||
|
code.height(h+20); // minimize bouncing.
|
||||||
|
code.closest('.input').height(h);
|
||||||
|
};
|
||||||
|
code.on('keydown', resize);
|
||||||
|
code.on('keyup', resize);
|
||||||
|
code.keyup(); // resize now.
|
||||||
|
};
|
||||||
|
|
||||||
|
// If example already visible, set up playground now.
|
||||||
|
if ($(el).is(':visible')) {
|
||||||
|
setup();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, set up playground when example is expanded.
|
||||||
|
var built = false;
|
||||||
|
$(el).closest('.toggle').click(function() {
|
||||||
|
// Only set up once.
|
||||||
|
if (!built) {
|
||||||
|
setup();
|
||||||
|
built = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// fixFocus tries to put focus to div#page so that keyboard navigation works.
|
// fixFocus tries to put focus to div#page so that keyboard navigation works.
|
||||||
function fixFocus() {
|
function fixFocus() {
|
||||||
var page = $('div#page');
|
var page = $('div#page');
|
||||||
@ -186,6 +232,15 @@ function toggleHash() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addPlusButtons() {
|
||||||
|
var po = document.createElement('script');
|
||||||
|
po.type = 'text/javascript';
|
||||||
|
po.async = true;
|
||||||
|
po.src = 'https://apis.google.com/js/plusone.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0];
|
||||||
|
s.parentNode.insertBefore(po, s);
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
bindSearchEvents();
|
bindSearchEvents();
|
||||||
generateTOC();
|
generateTOC();
|
||||||
@ -196,8 +251,16 @@ $(document).ready(function() {
|
|||||||
bindToggleLinks(".examplesLink", "");
|
bindToggleLinks(".examplesLink", "");
|
||||||
bindToggleLinks(".indexLink", "");
|
bindToggleLinks(".indexLink", "");
|
||||||
setupDropdownPlayground();
|
setupDropdownPlayground();
|
||||||
|
setupInlinePlayground();
|
||||||
fixFocus();
|
fixFocus();
|
||||||
toggleHash();
|
toggleHash();
|
||||||
|
addPlusButtons();
|
||||||
|
|
||||||
|
// godoc.html defines window.initFuncs in the <head> tag, and root.html and
|
||||||
|
// codewalk.js push their on-page-ready functions to the list.
|
||||||
|
// We execute those functions here, to avoid loading jQuery until the page
|
||||||
|
// content is loaded.
|
||||||
|
for (var i = 0; i < window.initFuncs.length; i++) window.initFuncs[i]();
|
||||||
});
|
});
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
@ -116,7 +116,7 @@ function feedLoaded(result) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$(function() {
|
window.initFuncs.push(function() {
|
||||||
// Set up playground.
|
// Set up playground.
|
||||||
playground({
|
playground({
|
||||||
"codeEl": "#learn .code",
|
"codeEl": "#learn .code",
|
||||||
|
@ -8,14 +8,10 @@
|
|||||||
<title>The Go Programming Language</title>
|
<title>The Go Programming Language</title>
|
||||||
{{end}}
|
{{end}}
|
||||||
<link type="text/css" rel="stylesheet" href="/doc/style.css">
|
<link type="text/css" rel="stylesheet" href="/doc/style.css">
|
||||||
<script type="text/javascript" src="/doc/jquery.js"></script>
|
|
||||||
{{if .Playground}}
|
|
||||||
<script type="text/javascript" src="/doc/play/playground.js"></script>
|
|
||||||
{{end}}
|
|
||||||
<script type="text/javascript" src="/doc/godocs.js"></script>
|
|
||||||
{{if .SearchBox}}
|
{{if .SearchBox}}
|
||||||
<link rel="search" type="application/opensearchdescription+xml" title="godoc" href="/opensearch.xml" />
|
<link rel="search" type="application/opensearchdescription+xml" title="godoc" href="/opensearch.xml" />
|
||||||
{{end}}
|
{{end}}
|
||||||
|
<script type="text/javascript">window.initFuncs = [];</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@ -87,13 +83,12 @@ and code is licensed under a <a href="/LICENSE">BSD license</a>.<br>
|
|||||||
</div><!-- .container -->
|
</div><!-- .container -->
|
||||||
</div><!-- #page -->
|
</div><!-- #page -->
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/doc/jquery.js"></script>
|
||||||
|
{{if .Playground}}
|
||||||
|
<script type="text/javascript" src="/doc/play/playground.js"></script>
|
||||||
|
{{end}}
|
||||||
|
<script type="text/javascript" src="/doc/godocs.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
<script type="text/javascript">
|
|
||||||
(function() {
|
|
||||||
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
|
|
||||||
po.src = 'https://apis.google.com/js/plusone.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
@ -224,53 +224,3 @@
|
|||||||
<p>Need more packages? Take a look at the <a href="http://code.google.com/p/go-wiki/wiki/Projects">Go Projects wiki page</a>.</p>
|
<p>Need more packages? Take a look at the <a href="http://code.google.com/p/go-wiki/wiki/Projects">Go Projects wiki page</a>.</p>
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{if $.Examples}}
|
|
||||||
<script>
|
|
||||||
$(document).ready(function() {
|
|
||||||
'use strict';
|
|
||||||
// Set up playground when each element is toggled.
|
|
||||||
$('div.play').each(function (i, el) {
|
|
||||||
// Set up playground for this example.
|
|
||||||
var setup = function() {
|
|
||||||
var code = $('.code', el);
|
|
||||||
playground({
|
|
||||||
'codeEl': code,
|
|
||||||
'outputEl': $('.output', el),
|
|
||||||
'runEl': $('.run', el),
|
|
||||||
'fmtEl': $('.fmt', el),
|
|
||||||
'shareEl': $('.share', el),
|
|
||||||
'shareRedirect': 'http://play.golang.org/p/'
|
|
||||||
});
|
|
||||||
|
|
||||||
// Make the code textarea resize to fit content.
|
|
||||||
var resize = function() {
|
|
||||||
code.height(0);
|
|
||||||
var h = code[0].scrollHeight;
|
|
||||||
code.height(h+20); // minimize bouncing.
|
|
||||||
code.closest('.input').height(h);
|
|
||||||
};
|
|
||||||
code.on('keydown', resize);
|
|
||||||
code.on('keyup', resize);
|
|
||||||
code.keyup(); // resize now.
|
|
||||||
};
|
|
||||||
|
|
||||||
// If example already visible, set up playground now.
|
|
||||||
if ($(el).is(':visible')) {
|
|
||||||
setup();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Otherwise, set up playground when example is expanded.
|
|
||||||
var built = false;
|
|
||||||
$(el).closest('.toggle').click(function() {
|
|
||||||
// Only set up once.
|
|
||||||
if (!built) {
|
|
||||||
setup();
|
|
||||||
built = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{{end}}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user