我想要的是一个包含 3 个 div 区域的主页,并使用 ajax 依次调用每个区域。因此,当页面加载时,div1 将已经加载从 ajax 调用的页面。(一些繁重的 mysql 工作正在被调用的页面上完成)。完成后,它将返回“完成”一词。
发生这种情况时,我希望 ajax 将下一个加载页面触发到 div 2 中,该页面将通过该过程并在完成时返回“完成”一词。与第三个相同的程序。
本质上,我正在执行一个大的 mysql 数据更新并且 PHP 一直超时(我已经最大化执行时间)所以我的理论是......如果我可以限制它处理的行数(它可以在没有时间的情况下执行 2000 行out) 然后我希望它处理 2000 行...完成..那个 div 通过返回单词“完成”让我知道,并且还启动 div 2 处理下一批记录。
我很确定这不是最佳实践,我正在研究存储过程的可能性,但考虑到我必须找到补救措施的时间框架,这个假设似乎是最合适的(一旦修复,我有时间研究和学习更好的方法)
我发现了一篇可能有帮助也可能没有帮助的文章。我不太了解它,无法进行多重 div 反应
当另一个 ajax 调用更改 div y 的内容时,如何自动更改 div x 的内容(使用 ajax)?
我希望你能帮忙。
谢谢
更新:Matej,可以像这样嵌套 3 个 div 吗?这可以嵌套吗?
$.ajax({
type: "POST",
url: "example.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
$.ajax({
type: "POST",
url: "example2.php",
data: { name: "Bill", location: "DC" }
})
.done(function( msg ) {
$.ajax({
type: "POST",
url: "example.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
// HERE
});
});
});
更新
这种接近我正在寻找的东西
<head>
<title>jQuery.load()</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#div1").load("firstfile.php");
});
</script>
</head>
<body>
<a href="javascript:void(0)" id="loadPage">Click To Load Web Page</a><br />
<div id="div1" /></div>
<div id="div2" />on standby</div>
<div id="div3" />on standby</div>
<hr>
<script>
if ($('#div1:contains("Complete")').length > 0) {
//load 2nd file in div 2
}
if ($('#div2:contains("Complete")').length > 0) {
//load 3rd file in div 3
}
</script>
执行任务时,它返回单词“Complete”,然后触发 div 2 加载页面,完成后将返回单词“Complete”,然后触发 div 3 加载页面。
一个问题是我无法查看innerHTML,因此“完成”一词仅在代码已经在页面中而不是来自页面加载时才有效……我也有点希望我能这样做根本不需要任何基于文本的触发器。
理想情况下,我希望他们的方法是 firstloadedpage.php 可以返回触发 div2 继续进行的内容,或者如果它可以向父级发送信号,指示加载完成,并让父级触发 div 2