单击时,我div
通过该方法填充了一个内容。$.load()
然后,我将此div
附加到body
弹出窗口(有点像模态弹出窗口)。每次点击,内容div
都会改变。
问题
碰巧整个填充机制大约需要 1.5 到 2 秒。如果我只点击一次就没有问题。但是,如果我再次单击,则会div
弹出旧内容,然后在接下来的 500 毫秒左右内加载新内容。所以用户可以看到我想避免的新旧内容。
我试过的
(1)首先想到的是用一个setTimeout()
函数在2秒后运行。
$('div#temp').load('somepage.php');
setTimeout(function(){
html = $('div#temp').html();
}, 2000);
$('div#popup').html(html).appendTo('body');
这可以工作,但它不可靠。无法保证新内容会在 2 秒内加载。它也可能需要 3 秒或更长时间。硬编码超过 2 秒的值也不好,因为它似乎是永恒的。
(2) 我尝试的下一件事是while
通过以下方式使用循环:
var html = '';
$('div#temp').load('somepage.php');
html = $('div#temp').html();
while(html == '')
{
html = $('div#temp').html();
}
$('div#popup').html(html).appendTo('body');
最后这可行,但由于某种原因,它会在弹出浏览器之前将浏览器挂起 8-10 秒div
很明显,这两种选择都有一些缺点。我希望可能有其他我不知道的解决方法?