Я что-то не совсем понял, почему отказ в загрузке одного из скриптов должен приводить к отказу в загрузке сайта? Вы сами пробовали ставить блокировку средствами того же Adblock plus, например?
Зависит от способа блокировки. Если будет тупо резаться и запрос к vkontakte.ru/js/api/share.js будет висеть, то пока не отвалится по таймауту, страница не покажется.
Понял, что вы имеете в виду. Да, вы правы, это зависит от способа блокировки. Но, даже в случае отсутствия режектов, это не отказ загрузки сайта, а сильное замедление этой самой загрузки.
Таймаут браузер устанавливает, но я ни для одного не знаю, чтобы легко это изменить.
А вообще это неправильный способ блокировки. Раз уж блокируют, пусть на подобные запросы 403 сразу отдаётся.
Такое возникает у горе-админов, которые банят все пакеты, в которых встречаются строчки с упоминанием домена. Вот куча примеров (1, 2 в общем, их таких много)
Кнопки социальных сетей вставлены в большое количество ресурсов. Когда социальные сети с работы прикрыты, браузер тупит при открытии страницы, так как не хочет двигаться дальше пока не прочитает код кнопки.
Автор как то не так выразился.
По его словам, если работодатель закрыл доступ к сайте vk.com,vkontakte.ru и т.д. то пользователь если заходит с рабочего сайта на сайт из списка «Примеры c посещаемостью больше 50к в день:» то такой сайт не будет грузиться, т.к. на этих сайтах установлены кнопки поделится и т.д. Смысл такой, автор считает что если не загружается скрипт с заблокированного домена, то сайт не работает.(Это как я понял прочитав статью)
Но это имхо бред :) ну не подгружается код с сервера контакта, и что с этого, все остальные то скрипты работают на ура и без этого скрипта, он как никак отвечает всего то за кнопку поделиться или мне нравится.
Если я не прав, поправьте, но 3 раза перечитав пост я его так понял :(
именно так — если контакт закрыт запретом пакетов на vkontakte.ru или yandex.ru — страница не начнет рендерица, пока запрос к контакту не отвалится по тайм ауту
Потихоньку складывается ситуация. Посмотрел статистику переходов из социалок, всего до 10 человек при 10к уникальных. Скрыл их, посмотрю на динамику по статистике. Оставил только share от яндекса и +1 гугла.
Тут главная опасность вот в чем.
Если криво режется какой-то источник (вконтакте, например) то сайт загрузиться — загрузится.
Но, броузер будет ждать, пока загрузится подключаемый скрипт и все это время не произойдет событие onload.
А в таком случае скрипты, которые ждут этого события (для jquery — $(document).ready(), равносильно $(function(){}) ) просто не отработают (точнее отработают, когда закроется соединение по таймауту).
У меня когда google analytics упал, не грузилось вообще половина интернета, загрузка сайтов надолго зависала пытаясь получить google-analytics.com/ga.js. Сейчас эту ситуацию исправили, и скрипт загружается асинхронно.
Сайт 1 (в контакте), сайт 2 (скажем хабрхабр). Предположим что хабрхабр использует кросс-рекламу с 'в контакте' (это все именно про кросс-рекламу).
Если для этой рекламы, хабрхабр использует ссылку на ресурс из сайта 'в контакте', и если этот ресурс загружается как синхронная часть страницы (то есть просто ссылка на этот ресурс, например ссылка на js file из кода страницы хабрхабр), то в зависимости от настройки firewall и того, как браузер работает, страница может не вырисовываться, а ожидать возврата запроса к этому ресурсу на 'в контакте'.
Если же этот ресурс загружать асинхронно (ну например в отдельной frame или используя XMLHttpRequest), то тогда хотя этот ресурс и будет тормозиться и не вернется из-за блокировки firewall, но остальная страница загрузиться и браузер ее отобразит без задержки.
Это я понял, просто подача текста была таковой что у меня все смешалось. Мне кажется что если в начале статьи сказать что проблемы с не асинхронной загрузкой то вопросов было меньше, а так получилось что упоминание про асинхронность только в последнем предложении.
Правильное решение — загрузка скриптов всех этих социальных сетей только по требованию.
Т.е. открываешь сайт, там есть кнопочки facebook, twitter и т.п., но никакого кода с этих сайтов не загружено, загружены только картинки, причём локально. Загрузка, собственно, кода должна происходить по нажатию на соответствующую кнопку — так пользователь будет ограждён от трекинга пока он этого не захочет (мы же уважаем частную сферу пользователя), и от тормозов при загрузке.
>От тормозов при загрузке можно избавится, если загружать код кнопок после рендеринга страницы.
Об этом, собственно, написано в статье.
>А если заботится о приватности, то кнопки можно совсем не ставить.
Если кнопки совсем не ставить, то доставим неудобства пользователям, которым эти кнопки нужны.
1. Понял, согласен. Грузить после всего рендеринга, включая программный.
2. Не учёл, так как не пользовался этими кнопками ни разу. Как вариант, можно инициализировать счётчик на сервере. Заодно и большое число пририсовать, если опрашивать соц.сети лень :)
По просьбе руководства приходится закрывать.
Открываем только тем, кому согласует их руководство и безопасники.
С одной стороны хорошо, люди хоть работать будут… А с другой — свобода действий.
У меня на работе не открывается ни одна страница в названии которой присутствуют слова вконтакте и одноклассники, но сайты из статьи открываются нормально.
При этом веб консоль показывает, что прокся действительно порезала все попытки загрузки вконтактовских скриптов.
Настроить privoxy на вырезание всех скриптов размещённых на левых доменах и никаких проблем. Вместе со всякими лайками, плюсами и прочей хренью из полезного отваливается только recaptcha.
такая проблема есть, сайты со вставками контакта вообще не грузятся, ни через минуту, ни через час. приходится прописывать вконтакт в хосты на локалхост
Сел сделать асинхронную загрузку в результате получилась готовая библиотечка — github.com/H1D/vk-async Пока только вконтакт, если интерес не пропадёт, то добавлю остальные сети и уйду от зависимости jQuery
Теряем посетителей — много и каждый день