我有这段代码:
$.when($.post(...)).then(function () {
...
});
我希望与$(document).ready(...);
结合使用,以便在页面初始化时启动请求,.then
函数内的所有内容都在页面和POST请求完成加载时运行。
我该怎么做?
答案 0 :(得分:1)
jQuery将为DOM加载时产生一个承诺。因此,您可以使用$.when()
等待两个承诺。因此,您可以这样做:
$.when($.post(...), jQuery.ready.promise()).then(function(result) {
// code here
// result[0] is ajax result
});
这样您就可以立即启动ajax调用,但只有在页面准备好后才能处理结果。
答案 1 :(得分:0)
我只是想出来了。
显然$(document).ready(function () { })
并不只是设置一个事件处理程序,但如果页面已经加载,也会立即运行代码。所以现在我只是使用它:
$.post(...).then(function () {
$(document).ready(function () {
...
});
});
这允许仅在POST请求完成且页面加载完毕后才运行代码。
答案 2 :(得分:-1)
你可以设置一些时间间隔,如
setTimeout(function(){ //do something here }, 3000);
在.then
内或检查您网页中的某些div是否存在于
$('#someDiv') !== null