我有一个页面,php和javascript。有时,javascript文件无法加载,然后我的页面才能正常工作。
我已经包含了5个javascript文件(jQuery插件),我想知道:
我已经检查过php页面加载时间超过10秒会破坏页面。
谢谢
答案 0 :(得分:2)
提示#1:
在页面末尾加载Javascript文件。
Javascript不需要这么快就通过HTTP
发送,因为它只用于加载页面后的动态更改。
移动:
<script type="text/javascript" src='src/jquery_1.7.min.js' ></script>
<!-- fancybox -->
<!--<script type="text/javascript" src="src/jquery.mousewheel.js"></script>-->
<script type="text/javascript" src="src/jquery.fancybox.js?v=2.0.6"></script>
<script type="text/javascript" src="helpers/jquery.fancybox-buttons.js?v=1.0.2"></script>
<script type="text/javascript" src="helpers/jquery.fancybox-thumbs.js?v=1.0.2"></script>
<script type="text/javascript" src="helpers/jquery.fancybox-media.js?v=1.0.0"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-16476667-10']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
function fireWhenReady() {
if (typeof function1 != 'undefined') {
function1();
}
else {
setTimeout(fireWhenReady, 100);
}
}
$(document).ready(fireWhenReady);
</script>
到页面底部。
提示#2:
此外,请尝试并维护两个版本的Javascript代码:
Sandbox
:您的代码版本很好地划分为模块。Release
:网站的代码版本,它放在一个Javascript文件中,并使用YUI Compressor之类的东西缩小。这会减少文件大小,并通过相应减少HTTP requests
的数量来提高加载速度。提示#3:
替换:
<script type="text/javascript" src='src/jquery_1.7.min.js' ></script>
使用:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
今天大多数用户都拥有缓存的jQuery的Google API版本,因此这比加载手头版本的速度要快得多。
享受并祝你好运!
答案 1 :(得分:1)
代码看起来很整洁。
但我会将$(document).ready()脚本放在<head>
并将css和javascript组合在一起。
答案 2 :(得分:0)
查看评论并猜测您可能遇到的问题,我认为您的方案是:
head
如果以上是正确的,那么我认为以下可能会有效
var MyBook; MyBook.chapterId = <%= echo $chapter-id %>
。但是在身体标记结束之前将所有其他代码作为最后一个脚本文件移动。$(document).ready(function() {})
,并在那里使用MyBook.chapterId
。您现在可以将它用于AJAX调用,或者具有加载章节的函数,并将此变量传递给该函数