5

Я использую Uniserver для PHP веб-разработки, и я использую Windows 8.1, и в системе установлен Kaspersky.

Большая часть моей работы связана с работой на сайтах WordPress.

Основные файлы Wordpress и некоторые файлы CSS и JavaScript (например, шрифты CDN JavaScript или Google), для работы которых требуется подключение к Интернету.

Когда Интернет работает медленно или даже не работает - мои страницы загружаются очень долго, так как они ожидают загрузки шрифтов Google, ресурсов CDN и т.д.; до тех пор, пока время не истечет. Это расстраивает, пока развивается, так как мне нужно обновляться снова и снова.

Однако, если я полностью отключаю Интернет - отключив Wi-Fi, - он загружается мгновенно, поскольку Интернет отсутствует, а страницы не ждут, пока не истечет время ожидания.

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

Но я не могу отключить Интерент, так как мне нужен Google все время.

В любом случае - через брандмауэры или некоторые настройки Apache - заблокировать Интернет для сайтов на localhost? Итак, моя страница загружается быстрее при разработке?

7 ответов7

8

Вот настройки, которые необходимо учитывать в браузере Chrome:

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

или просто используйте вместо этого Firefox и либо работайте автономно, либо уменьшите значение network.http.connection-timeout в about:config .

Вот предложения для вашего сайта WordPress:

  • используйте агрегирование и минимизацию JS, CSS-файлов, если это возможно, поэтому вместо десятков запросов у вас есть только один,
  • если вы используете удаленные файлы JS/CSS, рассмотрите возможность отключения временных плагинов, которые имеют к ним отношение (Google Analytics), повторно загрузите их локально или рассмотрите возможность использования локальных альтернатив (например, Google Analytics -> Open Web Analytics),
  • дважды проверьте, действительно ли у вас нет пропущенных запросов (таких как отсутствующие файлы изображений), которые работают в вашей основной среде - когда вы пропускаете изображения, это может инициировать сам код CMS, замедляющий загрузку страницы,
  • установите кеши PHP (такие как XCache) и memcached, чтобы еще больше ускорить вашу среду разработки.

Рассмотрите возможность использования прокси:

  • используйте простой прокси, где вы можете сократить время ожидания (так как, вероятно, невозможно настроить время ожидания в Chrome),
  • используйте прозрачный прокси, такой как squid или varnishd (который кеширует удаленные файлы и обеспечивает локальное копирование достаточно быстро).

Другие предложения:

  • если у вас есть определенные удаленные хосты, которые замедляют загрузку страницы, вы можете добавить их в /etc/hosts , например:

    127.0.0.1 google-analytics.com ssl.google-analytics.com
    

    Это будет относиться к ним как к местному населению без необходимости что-либо менять. Так что либо предоставьте локальную копию, либо время ожидания истечет.

  • настройте брандмауэр так, чтобы он отклонял соединения с определенными хостами.

2

Когда Интернет отключен, Chrome, по-видимому, использует автономный кеш, поэтому просмотр этих файлов выполняется быстро (возможно, CSS и т.д.).

Идея: если веб-сайт Apache находится на localhost, запустите Chrome с несуществующим прокси-сервером для всех сайтов, кроме localhost, с параметрами, такими как:

 --proxy-server="127.0.0.1:1234" --proxy-bypass-list:localhost

Это будет эффективно блокировать доступ в Интернет, оставляя открытым Apache на localhost, что аналогично отключению WiFi. Надеемся, что Chrome вернется к кешированной странице, как в автономном кеше Поэтому вы можете просто создать ярлык для Chrome с этими параметрами при использовании локального веб-сайта Apache.

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

1

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

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

Если вы хотите что-то, что будет влиять только на сайты, на которых вы работаете, возможно, используйте js-скрипты на стороне пользователя на любом хосте на localhost, который будет перенаправлять эти элементы - tampermonkey/greasemonkey может сработать. Не уверен, что кто-нибудь когда-либо делал это раньше.

1

Если я правильно понимаю вашу проблему, у вас все неправильно. Шрифты и скрипты не скачиваются apache. Веб-страница обслуживается один раз, а расположение шрифтов и сценариев указывается в ответе сервера. Браузер должен выбрать файлы, указанные в ответе. Поэтому блокирование доступа Apache к Интернету не является решением. Вы должны изменить свою политику обналичивания на странице.

1

Вы не можете перевести браузер в автономный режим работы, потому что вашему браузеру нужен онлайн-доступ к локальному URL-адресу (который обслуживается вашим локальным сервером Apache, но ваш браузер этого не знает).

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

Я лично предлагаю использовать Adblock Plus с вашим Chrome (ссылка на Интернет-магазин Chrome). В Adblock Plus укажите правила для блокировки этих внешних основных файлов, чтобы ваш браузер не пытался их загрузить. Попробуйте использовать опцию домена, чтобы заблокировать только URL-адреса, загруженные со страницы localhost, например

||google.com^$domain=localhost

Просто отключите Adblock, когда вы хотите, чтобы эти файлы загружались.

0

Вы можете отключить доступ к Интернету, разрешив только файлы localhost через файл .htaccess.

Попробуйте: создать новый файл с именем точно .htaccess в htdocs или корневой директории вашего проекта. Скопируйте и вставьте приведенный ниже код в этот файл .htaccess ...

Order deny, allow
Deny from all
Allow from localhost

Это в основном все. Если вы не можете создать файл .htaccess, загрузите его отсюда (в формате winrar):

[ ::: ссылка ::: ]

0

Вы упомянули брандмауэры - я бы хотел использовать для этого iptables. Вы можете легко написать сценарий в режиме онлайн / офлайн, но если вы блокируете трафик на уровне ОС, вам не нужно беспокоиться о том, является ли что-то артефактом браузера, веб-сервера или любого другого слоя над ним.

Просто убедитесь, что вы достаточно знакомы с iptables; нетрудно полностью заблокировать себя на сервере, например, если вы в конечном итоге откажетесь или откажетесь от ssh.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .