2013-05-07 1 views
0

У меня есть клиент, которому необходимо получить информацию из разных таблиц в базе данных mysqli на веб-сервере. В настоящее время у меня есть один запрос AJAX, настроенный на клиенте, который отправляет запрос AJAX на страницу php, которая запрашивает базу данных и возвращает объект JSON. Затем клиент выполняет итерацию через результирующий объект и вставляет необходимые данные в аналогичную таблицу в локальной базе данных. Однако этот запрос содержит только информацию из одной таблицы. Мне нужно будет заполнить несколько таблиц в базе данных клиента. В конце концов, при заполнении этой базы данных может возникнуть большое количество запросов к веб-серверу. Возможные решения, которые я придумываю следующий образом:Правильный AJAX и PHP запрос запроса запросов mysqli

  1. Design множественного АЯКС запросы на клиенте, что каждая запись в одной и ту же PHP страницы с отдельными запросами обработчика в зависимости от типа должности, полученной таким образом, что разная объекты JSON возвращаются клиент для итерации и вставить в локальную базу данных (многие AJAX -> 1 PHP)

  2. Design многих AJAX запросов, которые каждое сообщение на другую страницу PHP с одним результатом JSON для каждого AJAX/PHP-запрос для уменьшения трафика на любой странице PHP. (Многие AJAX -> Многие PHP)

  3. Дизайн 1 большой запрос AJAX, который делает один запрос на страницу PHP и возвращает всю необходимую информацию из базы данных и позволяет клиенту вставлять нужные фрагменты в локальную база данных. (1 AJAX -> 1 PHP)

ли какие-либо из этих идей кажутся лучше, чем другие? Я вижу недостатки во всех них, поэтому мне интересно, есть ли уже идеальное решение для минимизации работы, выполняемой на клиенте, а также для снижения трафика/обслуживания на сервере, о котором может знать кто-то. Любую помощь/критику оценивают.

+0

Я бы предложил одну страницу PHP, размещенную множеством аякс-запросов. –

ответ

0

Варианты 1 и 3 не являются взаимоисключающими: ваш серверный код может возвращать небольшие (или частичные, в зависимости от того, как вы его видите) наборы данных, как в варианте 1, и в то же время отвечать на другой тип запроса с полным набором данных. Клиентский код решает, какой запрос следует выполнять в зависимости от информации, которую он имеет в отношении выполняемой операции. Например, он может использовать один запрос, если запрошенная операция была «обновить одну запись», а другая, если операция «обновила все записи».

В общем, это то, что я сделал бы, поэтому я рекомендую оставить себе гибкость, чтобы выбрать подходящий тип запроса по дороге.

Смежные вопросы