JQuery AJAX - вернуть динамический контент - PullRequest
0 голосов
/ 10 августа 2010

Я делаю форму jQuery Ajax для отправки на страницу PHP, чтобы я хотел возвращать значения динамически, а не все сразу.Например, если мой код jQuery:

jQuery.ajax({
      type: "POST",
      url: "$PathToActions/Accounts.php",
      dataType: "html",
      data: "action=register&accounts=" + accounts,
      success: function(response){
           alert(response);
      });

Мой Accounts.php выглядит примерно так:

     <?php for ($i = 0; $i < 10; $i++) {
        echo $i;
        sleep(2);
     } ?>

Мой код выводит 012345679 прямо сейчас в одном предупреждении JavaScript после ~ 10вторая задержкаМожно ли заставить его выводить значения, как только они будут сгенерированы, а не все сразу?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 августа 2010
key = something_identify_here; //I use global variable for easier to understand

setInterval(function()
{
    jQuery.ajax({
      type: "POST",
      url: "$PathToActions/Accounts.php",
      dataType: "html",
      data: "action=register&accounts=" + accounts + '&key=' + key,
      success: function(response){
           alert(response);
           //change the key if its need
      });
}, 2000); //do query foreach 2 second

И в php-файле мы кодируем что-то вроде этого

showContentByKey($_GET['key']);

Основная идея здесь такова: вы делаете ajax-запрос каждые 2 секунды и отображаете возвращаемые данные. На вашем сервере php-скрипт отправляет некоторые данные (возможно, отличается от каждого раза) по запросу.

0 голосов
/ 10 августа 2010

да, вы можете сделать это через ob_start.

<?php 
ob_start();
for ($i = 0; $i < 10; $i++) {
        echo $i;
        sleep(2);
        ob_flush();
        flush();
     } 

ob_end_clean(); 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...