【发布时间】:2013-01-07 16:08:06
【问题描述】:
我正在创建一个视频播放器,它依赖于通过 ajax 加载 vimeo 和 youtube 播放列表 api。加载后,对于 youtube,我需要循环播放播放列表中的所有视频并调用每个视频的数据 api 以获取其修改日期。一旦加载了所有 vimeo 视频并加载了所有 youtube 视频并有了它们的创建日期,我需要使用 jquery 对它们进行排序。
我正在寻找检测这些过程何时完成的最佳方法,问题是在完成 vimeo 功能和 youtube 功能之前我无法真正开始排序。我能想到的最好的办法是运行一个 setInterval 函数来检查两个布尔标志的状态 - 例如:
var youtubeReady = false, vimeoReady = false;
var videoStatusInterval = setInterval("checkVideoStatus",1000);
function checkVideoStatus(){
if (youtubeReady === true && vimeoReady === true){
sortVideos();
}
}
问题在于这只会定期运行(示例中的每一秒) - 一旦满足两个条件,似乎应该有一种方法可以立即执行此操作。有人有什么想法吗?
【问题讨论】:
-
提示,不要在
setInterval中使用字符串。只需传递对函数setInterval(checkVideoStatus, 1000);的引用,您还可以通过减少间隔时间使其更加“即时”。 -
任何一个 API 都应该触发某种事件,让您知道它已准备好。在不了解您的代码的情况下,我会说检查您可以订阅的事件。然后为那些将触发您的排序功能的事件设置回调。
标签: javascript jquery ajax intervals youtube-javascript-api