php трудоемкий скрипт - обычный POST или несколько AJAX-запросов?
Я собираюсь дать вам резюме системы. У него есть заказы, и каждый заказ должен быть обработан внешним API. Обычно около 100 200 заказов должны быть обработаны за один раз, так что это займет много времени. В настоящее время я использую обычный пост-запрос с переданными идентификаторами заказа и в некоторой степени увеличил ресурсы PHP.
Основная проблема: не знаю, если по какой-то причине сценарий использует все ресурсы и останавливается. Это очень нежелательно, потому что оно может прекратиться в любой момент во время выполнения, другая вещь - я не хочу выделять слишком много ресурсов, так как знаю, что это тоже плохая идея.
Поэтому мне было интересно, если я использую несколько запросов AJAX для каждого заказа, разве это не будет лучше на самом деле? В общем, это займет больше времени из-за выполнения запроса и создания экземпляров объектов и прочего каждый раз. Но я буду совершенно уверен, что выделенные ресурсы не будут использованы и сценарий будет успешно завершен. Это также дает мне возможность интерактивно информировать пользователя о том, сколько заказов было обработано.
Любые отзывы от опытных пользователей приветствуются.
2 ответа
Если вы выполняете несколько AJAX-запросов, они будут выполняться параллельно, что потребует меньше времени, но больше ресурсов.
По моему мнению, вы должны использовать AJAX, потому что, как вы говорите, вы можете информировать пользователя о процессах, и лучше сделать это, тогда пользователь не знает, что происходит.
Если бы вы находились на странице, и во время обработки она застыла на 30 секунд, вы бы не знали, произошел ли сбой сценария или что-то в этом роде, но если бы он был в течение 60 секунд, но сообщал вам о прогрессе, вы были бы более склонны ждать чтобы это закончилось.
Вы также можете предварительно обработать заказы после их добавления, а затем завершить обработку после завершения заказов (в зависимости от механизма обработки заказов).
Ajax-вызов, способный обрабатывать> 1 заказов, может быть даже лучше, не зная деталей вашей системы. Непрерывные вызовы ajax также являются (серверным) ресурсом.