0

我创建了一个非常昂贵的 php 类,需要在管理页面上处理大量请求。出于这个原因,我尝试使用 jquery queing + ajax 调用来批处理请求,但是整个 javascript 没有触发,我不明白为什么。我更像是一个 PHP 专家,他非常喜欢 js 或 jQuery。

编码:

<script type="text/javascript">
$(document).ready(function () {
  window.queue = $.jqmq({
    // Queue items will be processed every 250 milliseconds.
    delay: 500,
    // Process queue items one-at-a-time.
    batch: 10,
    // For each queue item, execute this function.
    callback: function (model, apit) {
      $.ajax({
        url: 'script.php',
        type: "post",
        cache: false,
        data: "model=" + model + "&api=" + apit,
        success: function (data) {
          $(".error_msg p").append(data);
        }
      },
      // When the queue completes naturally, execute this function.
      complete: function () {
        $.ajax({
          url: 'script.php',
          type: "post",
          cache: false,
          data: "cleanup=1",
          success: function (data) {
            $(".error_msg p").append(data);
          }
          $('.error_msg p').append('<br /><span class="done">Queue done<\/span>');
        }
        });
      //the next line is repeated a couple hundred times with different values  
      queue.add('arg1', 'arg2'); queue.add('arg1', 'arg2');
      });
</script>

此代码位于正文中。包含的脚本(在头部)是:

<script type="text/javascript" src="js/jquery-1.4.1.js"></script>
<script type="text/javascript" src="js/jquery.ba-jqmq.js"></script>

我已经检查了 TamperData FF 插件,并且 script.php 的 ajax 帖子没有触发,我不知道为什么..

4

1 回答 1

0

jqmq 文档中,它说回调方法接受单个参数。你正在尝试发送更多。add 方法的第二个参数用于优先级,只能是布尔值。

queueObj.add( item [, priority ] );

您应该将参数添加为数组或对象。

我创建了一个小提琴,它似乎工作正常。

更新:另外,我相信同时 ajax 请求被限制为 3 或 4 个,所以你不能有 10 个批次。

于 2012-07-10T08:48:58.560 回答