我有一个网站需要很长时间来加载其字体工具包样式,以及其他一些运行有趣的脚本。这种情况正在发生,因为我的脚本在我的部分中都是混乱的,但我担心我对这些脚本的了解不足以正确清理我的文件。任何人都可以尝试一些建议,我可以做些什么来清理它,提高我的网站的速度和功能,特别是加快字体文字的速度?任何示例或特定的引用都会很棒 - 我很遗憾这些脚本正在发生的事情。以下是我发生的事情:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=0.3">
<meta name="google-translate-customization" content="d378d0a5e57245bf-c2ed76fd752675aa-g7014305900f205ae-13"></meta>
<title>{embed:title}</title>
<style type="text/css" media="screen">
@import url("/common/css/all.css");
@import url("/common/font_face/stylesheet.css");
@import url("/common/css/jcf.css");
</style>
<script type="text/javascript" src="/common/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="/common/js/jquery.main.js"></script>
<!--fancybox script starts here-->
<script type="text/javascript" src="/common/js/fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>
<script type="text/javascript" src="/common/js/fancybox/source/jquery.fancybox.js?v=2.0.6"></script>
<link rel="stylesheet" type="text/css" href="/common/js/fancybox/source/jquery.fancybox.css?v=2.0.6" media="screen" />
<link rel="stylesheet" href="/common/js/fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.2" type="text/css" media="screen" />
<script type="text/javascript" src="/common/js/fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
<script type="text/javascript" src="/common/js/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.0"></script>
<link rel="stylesheet" href="/common/js/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=2.0.6" type="text/css" media="screen" />
<script type="text/javascript" src="/common/js/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=2.0.6"></script>
<script type="text/javascript">
$(document).ready(function() {
// fancybox for html pages
$(".fancylink").fancybox({
'height' : '100%',
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe'
});
$(".fancylinksm").fancybox({
'height' : 'auto',
'autoScale' : false,
'transitionIn' : 'none',
'transitionOut' : 'none',
'type' : 'iframe'
});
// fancybox for vimeo
$(".vimeo").fancybox({
width: 781,
height: 440,
type: 'iframe',
fitToView : false,
wrapCSS : 'fancybox-nav-video'
});
$('.fancybox').fancybox({
padding : 0,
openEffect : 'elastic'
});
$(".fancybox").fancybox({
wrapCSS : 'fancybox-custom',
closeClick : true,
helpers : {
overlay : {
css : {
'background-color' : '#000'
}
},
thumbs : {
width : 50,
height : 50
}
}
});
});
$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox();
</script>
<!--fancybox script ends here-->
<link rel="shortcut icon" href="/common/images/cut-and-paste-logo.ico" type="image/x-icon" />
</head>
更新代码 我将所有脚本编译成一个'compiled.js'文件并将所有@import调用更改为s,但它仍然没有使我的字体加载更快。这是新的部分:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=0.3">
<meta name="google-translate-customization" content="d378d0a5e57245bf-c2ed76fd752675aa-g7014305900f205ae-13"></meta>
<!-- meta data goes here -->
<title>{embed:title}</title>
<link rel='stylesheet' type='text/css' href='/common/font_face/stylesheet.css'>
<link rel='stylesheet' type='text/css' href='/common/css/all.css'>
<link rel='stylesheet' type='text/css' href='/common/css/jcf.css'>
<link rel="stylesheet" type="text/css" href="/common/css/jquery.fancybox.css?v=2.0.6" media="screen" />
<link rel="stylesheet" href="/common/css/jquery.fancybox-buttons.css?v=1.0.2" type="text/css" media="screen" />
<link rel="stylesheet" href="/common/css/jquery.fancybox-thumbs.css?v=2.0.6" type="text/css" media="screen" />
<link rel="shortcut icon" href="/common/images/characterized_logo_16x16.ico" type="image/x-icon" />
<!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="css/ie.css" media="screen"/><![endif]-->
<script type="text/javascript" src="/common/js/compiled.js"></script>
</head>
答案 0 :(得分:1)
您应该将这些@import语句更改为链接标记,它会影响某些浏览器的性能。 http://www.stevesouders.com/blog/2009/04/09/dont-use-import/
理想情况下,您希望将所有这些JS文件连接到一个请求中。您可以使用Google闭包编译器等工具执行此操作:
https://developers.google.com/closure/compiler/
所以你运行类似的东西:
cd C:\path\to\src
java -jar C:\compiler.jar --js=jquery.main.js --js=jquery-1.8.3.js --js=fancybox\lib\jquery.mousewheel-3.0.6.pack.js --js_output_file=all.min.js
以下是关于使用JS bootloader来阻止阻塞的一些阅读: http://www.nczonline.net/blog/2009/07/28/the-best-way-to-load-external-javascript/
答案 1 :(得分:0)
优化我的脚本之后,所有内容都运行得更快,但并不完美。作为一个实验,在我的主CSS文件中,我删除了所有@ font-faces的调用(大约有10个)。
我删除了这些:
@font-face {
font-family: 'TradeGothicLTStdCnNo.18Ob';
src: url('../fonts/tradegothicltstd-cn18obl-webfont.eot');
src: url('../fonts/tradegothicltstd-cn18obl-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/tradegothicltstd-cn18obl-webfont.woff') format('woff'),
url('../fonts/tradegothicltstd-cn18obl-webfont.ttf') format('truetype'),
url('../fonts/tradegothicltstd-cn18obl-webfont.svg#TradeGothicLTStdCnNo.18Ob') format('svg');
font-weight: normal;
font-style: normal;
}
但我仍然在我的标题中调用此字体css
<link rel='stylesheet' type='text/css' href='/font_face/stylesheet.css'>
这样做之后,一切都在顺利,快速地运行,并且跨越多个浏览器。看起来@ font-face是真正的问题。我仍然通过java脚本拉取我的字体,所以我的所有自定义字体都没有延迟。