加载脚本后,我立即发出Ajax请求以获取一些翻译。自从我在页面底部加载脚本以来,这应该总是在文档准备好之后返回,但是我仍然好奇是否有可能在文档准备就绪状态下获得Deferred Object。
这样,可以在执行其他任何操作之前确保文档都准备就绪并且Ajax调用成功返回,例如:
$.when( $.ajax('translations'), document.ready()) .then(function(){ // Start doing stuff here });
您可以使用data()将延迟的对象与文档相关联,然后在处理程序中将它解决()ready。这样,您应该可以将存储的延迟对象与$ .when()一起使用:
ready
$(document).data("readyDeferred", $.Deferred()).ready(function() { $(document).data("readyDeferred").resolve(); }); $.when($.ajax("translations"), $(document).data("readyDeferred")) .then(function() { // Start doing stuff here. });