Введите задержку времени загрузки в расширении Chrome - PullRequest
2 голосов
/ 27 апреля 2011

Для исследовательского проекта я кодирую расширение Chrome, в котором при переходе к определенному URL-адресу должна быть введена задержка загрузки в 2 секунды. Поэтому я бы хотел получить эффект, когда пользователь вводит «example.com», ему приходится ждать еще 2 секунды, прежде чем страница начнет загружаться. Есть ли способ сделать это с помощью расширений Chrome? Я просмотрел документацию, но не могу найти ничего подобного.

Ответы [ 2 ]

2 голосов
/ 28 апреля 2011

Решение Криса будет работать, но оно блокирует пользовательский интерфейс.Вы также можете попробовать этот простой скрипт контента:

content_script.js:

document.documentElement.style.display = 'none';
setTimeout(function() {document.documentElement.style.display = '';}, 1000);

manifest.json:

{
  "name": "Delay webpage displays",
  "version": "1.0",
  "content_scripts": [
    {
      "matches": ["http://*/*"],
      "js": ["content_script.js"],
      "run_at": "document_start"
    }
  ]  
}

Я должен сказать, что это очень раздражает.Более того, проницательный пользователь будет знать, что что-то не так, потому что он покажет пустую страницу, даже если нет строки состояния «Waiting for www.example.com ...».

Если вы хотите идеально имитироватьмедленная сеть, я думаю, что лучшим способом было бы создать прокси HTTP / HTTPS (или, возможно, SOCKS5), который вводит задержку.Браузер может использовать прокси-сервер только для определенных URL-адресов, создав файл proxy.pac или используя экспериментальный прокси-сервер Chrome .

Так что же выхотите смоделировать?Если вы хотите смоделировать JS или рендеринг с высоким процессором, используйте решение Криса.Если вы хотите симулировать медленную сеть, используйте прокси.Мое решение имитирует медленную сеть, но это не идеальная маскировка.

1 голос
/ 27 апреля 2011

В вашем файле manifest.json добавьте:

"content_scripts": [{
    "matches": ["http://*.example.com/*"], // add in different URLs here
    "js": ["sleep.js"],
    "run_at": "document_start"
}]

И создайте sleep.js файл, содержащий:

function sleep (seconds) {
    var start = new Date().getTime();
    while (new Date() < start + seconds*1000) {}
    return 0;
}
sleep(2);

(найдено из phpjs )

Так что, если кто-то заходит на www.example.com, страница будет ждать 2 секунды перед загрузкой. Однако это не сработает, если страница перенаправляет на другую страницу (что делает example.com, поэтому лучше попробовать другой сайт:))

Для получения дополнительной информации проверьте документы манифеста .

...