Скрытие элементов на странице ДО ее загрузки

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Благодарностей
53
Баллы
28
Например, на странице есть таблица с большим кол-вом данных, которая мне не нужна. Надо сделать как-то так, чтобы она не рендерилась. Один из вариантов - прописать стиль для нее с display:none. Как это можно сделать?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
До загрузки никак
 

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Благодарностей
53
Баллы
28
Однако же вопрос как-то надо решать, таблица реально ОЧЕНЬ тяжелая. Я пока что сделал такой костыль, может кому-то пригодится:
Код:
var Src = ZennoPoster.HttpGet(
    "http://ya.ru",
    instance.GetProxy(),
    "UTF-8",
    ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
    10000,
    instance.GetCookie("ya.ru", true),
    project.Profile.UserAgent
);
instance.ActiveTab.SetSourceText(
    Src.Replace("Яндекс", "Хуяндекс") // тут можно сделать с исходником страницы что угодно, вырезать что-то регуляркой и т.д.
);
 
Последнее редактирование:
  • Спасибо
Реакции: Nick

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
полезная штука! наверное, и браузер меньше памяти будет кушать, работая позади такого фитнес-прокси-сервера)
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Proxomitron - самое простое решение )
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
Cookies то ладно, а шляпу реквеста в instance.ActiveTab.SetSourceText разве можно впихнуть? Это риторический вопрос для зенки, такой же как и подмена времени в браузере, реальные евенты, javascript callbak'и и прочие мелочи...
Ну, если дело не в хедере, то нужно подключать dom-парсер и хирургическим методом удалять таблицу. Здесь стоит подметить, что внешний парсер тоже будет нагружать систему.
Есля же "обфусканый" ява-скрипт грузит таблицу - вобще не стоит заморачиваться.
 

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Благодарностей
53
Баллы
28

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
хедер респонса очень важен, а в страницу его впихивать не нужно. Я упростил идею, но идея осталась: хедер нужен для браузера чтобы правильно грузить страницу. Простой пример:
instance.ActiveTab.MainDocument.EvaluateScript("return document.domain");
не вернет вам ничего, если страницу загрузить через SetSourceText.
Самый лучший способ на данный момент перехват реквеста фидлером, подключение парсера если нужно, вырезание лишнего контента либо копирование нужного, замена респонса и выход из перехвата.
 
  • Спасибо
Реакции: famous1144

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)