Как я могу загружать изображения динамически и быстро в Wicket? - PullRequest
2 голосов
/ 20 апреля 2011

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

org.apache.wicket.protocol.http.request.InvalidUrlException: org.apache.wicket.WicketRuntimeException: через 1 минуту нулевой Pagemap все еще блокируется: Thread [http-8443-2,5, main], прекращая попытки получить страницу по пути: 6:documentList: scroller: batchElem: 11: содержимое: элемент: 7: столбцы: 9: batchItemContent: linkToPreview: imageThumbnail
в org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve (WebRequestCycleProcessor.java: 266)в org.apache.wicket.RequestCycle.step (RequestCycle.java:1310)
в org.apache.wicket.RequestCycle.steps (RequestCycle.java:1428)
в org.apache.wicket.RequestCycle.request(RequestCycle.java:545)

Кто-нибудь знает другие решения для загрузки изображения динамически, чтобы избежать ошибки?

Ответы [ 3 ]

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

Проблема в том, что их загрузка занимает много времени, а в некоторых случаях это занимает больше минуты

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

Время ожидания можно увеличить (см. этот вопрос ), но это не лучшее решение.

Что занимает столько времени? Вы делаете сложный рендеринг динамических изображений? Вы можете показать код?

Возможно, вы уже знаете об этом, но есть примеры изображений , которые могут быть полезны.

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

Лучше использовать общие ресурсы Wicket для доставки содержимого изображения. То есть что-то вроде: в MyApp # init () смонтировать ресурс - mountSharedResource () для 1.4 или mountResource () для 1.5. Затем используйте ContextImage с URL-адресом, который указывает на смонтированный ресурс + динамический параметр с именем / путем к изображению. Преимущество заключается в том, что общие ресурсы Wicket не синхронизируются как страницы Wicket.

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

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

...