2012-02-12 40 views
0

我不太清楚如何将搜索字词,或寻找什么与我想要的。基本上,我想设置一个div来显示jQuery的post/get返回的数据,类似于Windows命令提示符中的旧批处理文件。jQuery:在成功之前显示发布数据

function run_cache() { 

    $.get("/run_cache.php", function(data) { 
    $('#update_div').html(data); 
    }); 
    return false; 

} 

这是基本代码。在run_cache.php里面它做了一些事情,然后echo了一些文本。我希望在回显后显示文本。现在,简单的jQuery代码只会在完成运行的脚本后发布数据,并发布所有已回显的数据。

有没有办法在发送数据时发布数据?就像在php文件完成之前一样。

例子:

run_cache.php做一些事情和回声的 '设置1完成'。该div更新为“Set 1 Complete”。 run_cache.php执行其他操作,并且echo的“Set 2 Complete”。 div文本然后更改为“Set 2 Complete”。明白我的意思了吗?

这是可能在jQuery中做?或者只有在获取/发布表格完成后才能发布数据?

回答

1

您将无法将消息发送回客户端没有请求被合并,这意味着您必须逐步提出请求以便在每个集合或“批处理”完成时更新页面。第一步是要求找出需要完成多少“步骤”。然后进行单独的调用来请求执行一个步骤...递归调用相同的函数来执行下一步。

var set_count = 0; 
function get_set_count() { 
    $.get("/get_set_count.php", function (data) { 
     // populate the set_count variable from the returned data. could be xml or json. 
     // your choice. 
     set_count = $(data).find('set_count').val(); 

     if (set_count > 0) { 
     // kickoff the process, requesting set number 1. 
     run_cache(1); 
     } else { 
     $('#update_div').html("No sets found."); 
     } 
    }); 
    return false; 
} 

function run_cache(set) { 
    var url = "/run_cache.php?set=" + set; 

    $.get(url, function (data) { 
    $('#update_div').html(data); 

    if (set < set_count) { 
     // recursively request the next set. 
     run_cache(set + 1); 
    } 
    }); 
    return false; 
} 

现在,我想它 - 你或许可以通过具有run_cache.php返回两个数据摆脱了最初的get_set_count()调用的:刚完成了一组和下一组数字。

+0

我在想同样的事情,但我希望有一些方法来显示数据,因为它进来。有点像在PHP中的fgets。感谢您的帮助:P – WMI 2012-02-12 17:34:14

0

您可能需要使用jQuery's AJAX functions这样的尝试(该数据是如何格式化取决于你的服务器发回):

function run_cache() { 
    $.ajax({ 
    url: '/run_cache.php', 
    beforeSend: function() { 
     // do something before sending data to server 
    }, 
    success: function(data) { 
     $('#update_div').html(data); 
    } 
    }); 
} 
+0

.get()_is_是一个jQuery AJAX函数。 – j08691 2012-02-12 16:53:28

+0

发送数据之前,我不想做任何事情。我想将数据发布到div上,然后从服务器上获取它。我想在发送数据时获取数据,而不是在它调用的脚本成功之后。 – WMI 2012-02-12 16:55:47

+0

@ j08691你说得对,我不是指.get()不是AJAX函数。 – robmclarty 2012-02-12 20:23:12

相关问题