我有一个带有一些不错的UI(jQuery)功能的母版页。其中一个选项是与我的嵌入式YouTube(或其他相似的)对象进行干扰。在每种情况下,在这种情况下,setInterval事件使嵌入的视频停止显示新帧(比如一秒钟)。
更多细节: 我有一个“宝丽来”画廊(在标题中),其中只有5个100x100图像(测试:预加载对性能没有影响),我的画廊将显示或隐藏它们(淡入/淡出)一段的时间。 (测试:非动画显示:隐藏或显示:块对性能没有影响)。
经过一些测试,我得出结论,它不是“动画”显示或隐藏图片,但它是间隔本身( - 自改变显示:隐藏或阻止具有相同的结果) 。也许这本身就是我的“画廊”“功能”......
function poladroid() {
if (!galleryHasFocus) {
if (galleryMax >= 0) {
galleryCurrent++;
if (galleryCurrent > galleryMax) {
galleryCurrent = 0;
showPictures = !showPictures;
}
if (showPictures) {
$('#pic-' + galleryCurrent.toString()).show("slow");
}
else {
$('#pic-' + galleryCurrent.toString()).hide("slow");
}
}
}
if (!intervalSet) {
window.setInterval("poladroid()", 3000);
intervalSet = true;
}
}
这不是我的功能真的很尴尬的东西吗?所以,我在想我需要一个更“宽松”的间隔函数..但它有一个选项吗?
Ow ..几乎忘记提及它:FireFox和Chrome表现相当不错;使用IE(还有什么)有最大的性能问题。
答案 0 :(得分:1)
setInterval / setTimeout没有替代品 - 这些 是基于浏览器的ECMAScript中计时事件的唯一方法。
这里不容易理解真正的问题,但我猜测你使用setInterval触发的任何东西比它必须更重(因为它是jQuery) - 你应该尝试提高效率。
如果您想要一个易于使用的幻灯片,请查看http://github.com/oyvindkinsey/JsSlideshow - 它有一个演示here
顺便说一句,不要使用文字作为setTimeout / setInterval的第一个参数,使用函数引用
setInterval(poladroid, 3000);