Как я могу выполнить междоменный GET, не загружая в браузер ссылки на изображения? - PullRequest
3 голосов
/ 05 августа 2011

Я использую $.get() в среде, которая допускает междоменные HTTP-запросы, а именно расширение chrome.Я использую его, чтобы захватить страницу и соскоблить информацию для отображения пользователю.Это работает.

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

Вот мой код:

$.get('http://somewebsite.com/page-with-lots-of-images.htm', function(data) {
    var thingsICareAbout = $(data).find('#some-id, #some-other-id');
    foo(thingsICareAbout);
});

Как получить #some-id и #some-other-id без загрузки всех изображений в документе?


РЕДАКТИРОВАТЬ: Изображения загружаются только после вызова $(data).Так или иначе, вызов этого в строке html запускает загрузку изображений.Любая альтернатива?

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

Почему это происходит, объяснено здесь :

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

Поэтому, когда вы делаете $(data), он вставляет все эти HTML на вашу страницу.

Как этого избежать. Если что-то, что вы ищете, не требует сложных селекторов jquery, возможно, вы можете разобрать html самостоятельно (например, с помощью ... регулярных выражений * gulp *).

0 голосов
/ 05 августа 2011

Если вы не вставляете этот HTML-код в DOM, это всего лишь строка, и я сомневаюсь, что браузер начнет загружать изображения.

Перед тем, как вставить его в DOM, вы можете выполнить поиск-замену для src = "..." и заменить его чем-то в строке xxx = "...".

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