Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
挂起页面加载:Javascript太多?_Javascript_Jquery_Html_Audio_Lightbox - Fatal编程技术网

挂起页面加载:Javascript太多?

挂起页面加载:Javascript太多?,javascript,jquery,html,audio,lightbox,Javascript,Jquery,Html,Audio,Lightbox,我终于解决了一些Javascript问题,现在只使用了一个库(以前很疯狂) 页面加载中有一点悬念,所以我想看看你们是否注意到我可以在脚本编写中提高效率的地方。到处都是,所以我可能有一些不必要的功能。建议 提前谢谢 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script src="player/src/jquery.ubaplaye

我终于解决了一些Javascript问题,现在只使用了一个库(以前很疯狂)

页面加载中有一点悬念,所以我想看看你们是否注意到我可以在脚本编写中提高效率的地方。到处都是,所以我可能有一些不必要的功能。建议

提前谢谢

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="player/src/jquery.ubaplayer.js"></script>
<script>
$(document).ready(function() { 
    $("#ubaPlayer").ubaPlayer({
        codecs: [{name:"MP3", codec: 'audio/mpeg;'}]                
    });

    $('a[class=video]').click(function () {
        if ($("#ubaPlayer").ubaPlayer("playing") === true) {
            $("#ubaPlayer").ubaPlayer("pause");
        }
        return false;
    });
})
</script>
<script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.4">                </script>
<script type="text/javascript" src="/fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.5"></script>
<script type="text/javascript">
jQuery(document).ready(function() {

$(".video").click(function() {
    $.fancybox({
        'padding'       : 0,
        'autoScale'     : false,
        'transitionIn'  : 'none',
        'transitionOut' : 'none',
        'title'         : this.title,
        'width'         : 640,
        'height'        : 385,
        'href'          : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
        'type'          : 'swf',
        'swf'           : {
        'wmode'             : 'transparent',
        'allowfullscreen'   : 'true'
        }
    });

    return false;
});
});
</script>

</head>

$(文档).ready(函数(){
$(“#ubaPlayer”).ubaPlayer({
编解码器:[{name:“MP3”,编解码器:'audio/mpeg;'}]
});
$('a[class=video]')。单击(函数(){
if($(“#ubaPlayer”).ubaPlayer(“播放”)==true){
$(“#ubaPlayer”).ubaPlayer(“暂停”);
}
返回false;
});
})
jQuery(文档).ready(函数(){
$(“.video”)。单击(函数(){
$.fancybox({
“填充”:0,
“自动缩放”:false,
“transitionIn”:“无”,
“transitionOut”:“无”,
“title”:this.title,
“宽度”:640,
‘高度’:385,
'href':this.href.replace(新的RegExp(“watch\\?v=,“i”),'v/'),
“类型”:“swf”,
“swf”:{
'wmode':'transparent',
“allowfullscreen”:“true”
}
});
返回false;
});
});

仅在这个代码片段中,您就有四个外部脚本和两个内联脚本块

最小化HTTP请求的数量恰好是web性能的黄金法则。如果可能,尝试将外部脚本合并到一个或两个JS文件中

另一件奇怪的事情是,内联脚本将两个绑定函数都阻塞到jQuery的
.ready()
。为什么不让一个函数同时做这两件事呢?请参见下面的示例:

$(document).ready(function() { 
    $("#ubaPlayer").ubaPlayer({
        codecs: [{name:"MP3", codec: 'audio/mpeg;'}]                
    });

    $('a[class=video]').click(function () {
        if ($("#ubaPlayer").ubaPlayer("playing") === true) {
            $("#ubaPlayer").ubaPlayer("pause");
        }
        return false;
    });

    $(".video").click(function() {
        $.fancybox({
            'padding'       : 0,
            'autoScale'     : false,
            'transitionIn'  : 'none',
            'transitionOut' : 'none',
            'title'         : this.title,
            'width'         : 640,
            'height'        : 385,
            'href'          : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type'          : 'swf',
            'swf'           : {
                'wmode'             : 'transparent',
                'allowfullscreen'   : 'true'
            }
        });

        return false;
    });
})

我注意到的另一部分是JavaScript下面有一个
标记。我以前说过这句话,但我强烈建议将脚本移到
标记之前。页面加载会受到脚本加载和解析的影响,因此如果您可以推迟到以后,那么至少对感知到的页面加载会更好。

您能解释一下吗?我不熟悉脚本编写,但我会边写边学。当然。你需要解释什么?为什么不让一个函数同时做两件事呢!我明白你的意思。这是可以理解的。我还想问:在将这些外部脚本组合在一起时,是否有任何问题需要注意?我可能只是将其中的两个(我的音频播放器和fancybox)结合起来,但至少少了一个HTTP请求。如果你真的打开一个新文件,复制每个文件的内容,并按相同的顺序粘贴它们,你应该不会有任何问题。我建议保持jQuery代码的原样,不要与其他脚本组合。它是迄今为止最大的文件,并且位于单独的域中,因此您可以享受并行下载的好处。