0

我想要的是一个包含 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

4

1 回答 1

1

您可以在第一个完整回调中启动下一个 ajax 函数。

$.ajax({
  type: "POST",
  url: "example.php",
  data: { name: "John", location: "Boston" }
})
  .done(function( msg ) {
    // HERE
  });
于 2013-11-11T15:39:58.710 回答