Как выполнить фоновую загрузку и очистку страницы с Расширением XUL/Firefox

Swagger не анализирует вашу реализацию Java.

Если вы хотите добавить больше информации в документацию, вы должны использовать аннотации Swagger:

https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5 .X

В вашем случае что-то вроде:

@ApiResponses(value = { 
      @ApiResponse(code = 500, message = "Maximum upload size exceeded.")
})

Но вы должны добавить эту аннотацию к вашему RestController. ControllerAdvice не считается чванством.

6
задан Cheekysoft 21 August 2009 в 10:20
поделиться

4 ответа

В случае XUL/Firefox, в чем Вы нуждаетесь, интерфейс nsIIOService, который можно получить как это:

var mIOS = Components.classes["@mozilla.org/network/io-service;1"].
   getService(Components.interfaces.nsIIOService);

Затем необходимо создать канал и открыть асинхронный канал:

var channel = mIOS.newChannel(urlToOpen, 0, null);
channel.asyncOpen(new StreamListener(), channel);

Ключ здесь StreamListener объект:

var StreamListener = function() {
    return {
        QueryInterface: function(aIID) {
            if (aIID.equals(Components.interfaces.nsIStreamListener) ||
                aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
                aIID.equals(Components.interfaces.nsISupports))
                return this;
            throw Components.results.NS_NOINTERFACE;

        onStartRequest: function(aRequest, aContext)
           { return 0; },

        onStopRequest: function(aRequest, aChannel /* aContext */, aStatusCode)
           { return 9; },

        onDataAvailable: function(aRequest, aContext, aStream, aOffset, aCount)
           { return 0; }
    };
}

Необходимо заполнить детали в onStartRequest, onStopRequest, onDataAvailable функции, но этого должно быть достаточно для получения Вас движение. Можно взглянуть на то, как я использовал этот интерфейс в своем расширении Firefox (это называют IdentFavIcon, и это может быть найдено на дополнительном сайте Mozilla).

Часть, в которой я не уверен, - то, как можно время от времени инициировать этот запрос страницы, set_timeout() должен, вероятно, работать, все же.

Править:

  1. Посмотрите пример здесь (см. раздел Downloading Images) для примера о том, как собрать загруженные данные в единственную переменную; и
  2. Посмотрите эту страницу о том, как преобразовать источник HTML в дерево DOM.

HTH.

6
ответ дан 10 December 2019 в 00:45
поделиться

Взгляните на XMLHttpRequest, должны запустить Вас.

0
ответ дан 10 December 2019 в 00:45
поделиться

От привилегированного JavaScript, т.е. JS в расширении, Вам разрешают создать скрытый iframes; загрузка указанной страницы так же проста как установка местоположения на этом кадре.

Если Вы раскрываете простую, статическую страницу, которой Вы владеете, set_timeout должен быть прекрасным. Но в этом случае, почему бы не использовать XHR?

Если бы Вы раскрываете произвольные страницы, с динамическими элементами или большим количеством содержания, я рекомендовал бы инициировать Ваше царапанье использования страницы Document.onload обработчики событий вместо этого. Это - более надежный путь, и можно стать умными об очистке страницы в самый ранний момент, но когда Вы знаете, что необходимое содержание там.

Я не думаю, что существует определенное учебное руководство на этом, но Центр разработки Mozilla, который я уверен, что Вы уже нашли, абсолютно превосходно - лучшая техническая документация онлайн, по-моему!

1
ответ дан 10 December 2019 в 00:45
поделиться

Я не уверен, понял ли я вопрос полностью, но попытаюсь ответить на несколько очевидных альтернативных вопросов:

При поиске статической очистки веб-страницы, BeautifulSoup (Python) является одним из лучших и самых легких.

При поиске изменения на основанной на Ajax странице которая изменяется со временем, необходимо будет продолжать управлять кодом в бесконечном цикле. Но не опрашивайте сайт слишком часто, он обнаружит потребление пропускной способности и может заблокировать Ваш IP, таким образом опросить в некотором интервале.

Если Вы надеетесь очищать представленные тикеры некоторого JavaScript или что-то, которое не может быть сделано, пока страница не представляется, следовательно не возможная с одним только BeautifulSoup. необходимо будет использовать бездисплейный браузер как Лом - Similie (использует XULRunner), который представляет содержание JavaScript на бездисплейном браузере, и вывод этого представленного содержания может использоваться в качестве входа к скребку BeautifulSoup.

3
ответ дан 10 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: