много картинок на одной странице некоторые не загружаются - PullRequest
1 голос
/ 09 марта 2012

Я делаю систему управления складом.

Заказы приходят в CSV утром, когда мой сценарий затем выполняется.

Он помещает штрих-код, созданный php, в верхней части каждогопорядок.В образце CSV, который я использую, включено около 100 уникальных заказов, поэтому при загрузке страницы, которая затем распечатывает заказы с сервера, поступает более 100 запросов и (я предполагаю) время ожидания некоторых изображений.

Когда я просматриваю источник и открываю ссылку на те, которые не работают, он загружает изображение, что наводит меня на мысль, что мне нужно как-то отключить метод тайм-аута в браузере.

Моя единственная другая идея - загрузитьштрих-коды через JavaScript.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Если вы запускаете сеанс в php, сеанс блокируется и не может быть доступен для другого сценария php до тех пор, пока он не будет выпущен.

На основании того, что вы генерируете изображения с помощью php - вполне вероятно, что вы видите.

Есть другие вопросы , в которых более подробно рассказывается о том, как работают php и сессии;но, скорее всего, это прямая причина того, что некоторые ваши изображения не были получены - запросы находятся в одной последовательной очереди, которая обрабатывается по очереди, потому что каждый сценарий читает сеанс и не освобождает его до тех пор, пока он не будет завершен.Запросы в конце очереди так или иначе попадают в ограничение по времени и ничего не возвращают.

Поэтому убедитесь, что вы вызываете:

session_write_close();

как можно быстрее во всех сценарияхкоторым нужен доступ к сеансу, чтобы запретить им блокировать все остальные запросы php, или, что еще лучше, вообще не использовать сеанс (например, если вы используете сеанс для авторизации, просто включите в URL хеш и сравните его с этим длязапросы изображений).

0 голосов
/ 09 марта 2012

Я думаю, что загадка может заключаться в том, что PHP-скрипты имеют ограниченное время обработки. Иногда они отключаются через 30 секунд. Генерация всех этих изображений за один раз может привести к тому, что ваш скрипт будет убит на сервере и перестанет отправлять данные. Ваша идея загрузить их в javascript - это, вероятно, ваш лучший выбор, если вы делаете только несколько за один раз или делаете их последовательно.

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