Ajax / jQuery для PHP и обратно? - PullRequest
1 голос
/ 24 апреля 2011

У меня есть вызов ajax с jQuery, что-то вроде этого:

$.ajax({
    type: "POST",
    url: ajaxurl,
    data: data,
    success: function(response){
        alert(response);
    }
});

Я получаю данные из PHP следующим образом:

$data_array = get_data();
foreach($data_array as $data)
{
    echo $data;
}

PHP для замедления

Вызов функции данных PHP медленный, потому что он получает очень много данных из базы данных, может извлекать изображения, делать некоторые вызовы json и другие медленные вещи.

Один цикл за один раз

Поэтому мне нужно получить код PHP, просто сделайте один раунд, затем Javascript и затем следующий раунд в цикле.

Есть несколько способов ее решить?

Там может быть несколько способов сделать это. Какой из них предпочтительнее? На ум приходят Javascript foreach-loop, JSON и глобальные переменные Javascript.

Ответы [ 3 ]

2 голосов
/ 24 апреля 2011

Вы можете установить тип возвращаемого значения в вашей функции ajax как xml или json, а затем вернуть ваш массив в любом из этих типов. Я чувствую, что JSON предпочтительнее для вашего решения.

1 голос
/ 24 апреля 2011

Я немного против сохранения реальных изображений в базе данных. Я предпочитаю оставить для них только уникальную ссылку, а затем вернуть ее вместо реального изображения. Это ускорит запрос. Я согласен с mad_programmer, что JSON js предпочтительнее для вашей ситуации.

0 голосов
/ 24 апреля 2011

Вы можете манипулировать вашим запросом, чтобы сделать ограничение.Так что-то вроде:

 var total_count = ajax_get_sql('select statement with count');
 var curr_count = 0;
 var set_number = 10; 
 var select_statement_without_limit = 'statement';  

 setTimeout('fetch_data()',0);

 ...

 function fetch_data()
 {
      if(curr_count < total_count)
      {
           ajax_get_sql(select_statement_without_limit with limit appended);
           curr_count = curr_count + set_number;
           setTimeout('fetch_data()',0);
      }
 }

Все ваши вызовы ajax настроены на ожидание ответа вместо продолжения.Я бы сохранил логику sql в PHP, но использую javascript для многократных запросов к серверу.Это предотвратит длительные ошибки выполнения вашего JS-скрипта.На самом деле я не учел манипулирование данными, но вы, наверное, можете это понять!

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