在我的测试网站上,我尝试在用户切换视频之前使用AJAX加载一些关于视频的文本,然后在ajax成功返回后输入文本。
我需要检查AJAX是否已成功返回并且javascript函数是否可用。我怎么检查这个?
我可以在AJAX加载后立即单独运行一个函数,并且只要javascript函数可用,但我不知道它们将进入哪个顺序。
答案 0 :(得分:1)
您可以对事件和回调执行某些操作。我仍然不确定你的意思是什么“功能已经可用”,但这里有一些不应该让你开始的东西。
// Check if all conditions are complete.
function completionChecker(limit, callback) {
// Private count variable will outlast scope due to closure.
var count = 0;
// Return a callback for the event.
return function(event) {
if(++count == limit) {
// Call the callback supplied.
callback();
// Remove the event listener, we've reached the limit.
this.removeEventListener("finished", arguments.callee, false);
}
}
}
// Some function to perform when everything is complete.
function myFunc() { /* Do stuff */ }
// Create a custom event.
var myEvt = new CustomEvent("finished");
// Add a listener to the document. After 2 "finished" events, call myFunc.
document.addEventListener("finished", completionChecker(2, myFunc), false);
// Now in your ajax success callback, and wherever your other function
// has "become available", fire the "finished" event.
document.dispatchEvent(evt);