Список разделов › phpBBex 1.x (поддерживается) › Пожелания 1.x
Немного поразмыслив я пришёл к выводу, что асинхронная загрузка jQuery лишена всякого смысла. Браузер ждёт загрузки jQuery только один раз, при первом заходе на сайт. Дальше файл берётся из кэша, где он сразу готов к использованию. С дополнительным кодом по асинхронной загрузке jQuery время до полной готовности страницы только увеличится. Полная готовность — это когда пользователь уже может нажимать на кнопочки, которые он увидел на экране.factotum:Если не заморачиваться с загрузкой jquery
сегодня живем в разных вселенных. в одну вселенную вместе с гуглом, твиттером, фейсбуком и прочими, использующими ленивые загрузки и для картинок, и для скриптов, к сожалению, попал только я.VEG:Картинки сами по себе грузятся асинхронно. Если добавить ещё и какой-то скрипт для этого, то это только замедлит работу
спартанский функционал любого ванильного движка не подразумевает, что тот же лайтбокс никому не нуженVEG:В phpBBex нет никаких сложных скриптов на JavaScript
откройте сырец казалось бы пустой страницы google.com. Вы очень удивитесьVEG:Достаточно проверить, как поступают гиганты типа Yandex и Google. Там люди не занимаются реализацией фишек «ради самих фишек». Скрипты подключаются напрямую
Откройте сырец казалось бы наполненной контентом страницы yandex.ru. Вы очень удивитесь. При этом что главная Яндекса, что главная Google — обе открываются примерно за секунду. Соглашусь, я про Google не проверив и не подумав ляпнул.factotum:откройте сырец казалось бы пустой страницы google.com. Вы очень удивитесь
Откройте Google Plus, Twitter, Facebook. Сравните скорость загрузки этих социалок с VK. Изучите код VK. У меня — VK загружается практически моментально. Остальные долго думают до готовности. При этом на vk.com я вижу пачку синхронно загружаемых js-файлов. Во всех случаях я сперва заходил на какую-то страницу, чтобы все необходимые данные закэшировались. Затем я копировал адрес этой страницы и открывал её в новой вкладке (F5 тут не катит, ибо он начинает проверять, не изменились ли файлы, которые уже есть в кэше). Считал время до момента, когда страница полностью готова.factotum:гуглом, твиттером, фейсбуком
Социалки работают иначе — у них там всюду бесконечные ленты и подгрузка данных на AJAX по мере прокрутки. Совсем другая специфика. В первом посте речь шла об асинхронной загрузке картинок. То есть страница загрузилась и отобразилась — и после этого начинают загружаться картинки. Так браузер и делает, он не ждёт окончания загрузки картинок, в отличие от ожидания синхронных <script>.factotum:использующими ленивые загрузки и для картинок
У браузера есть лимит соединений на каждый хост и своя тактика по их загрузке. Изображения, на которые сейчас смотрит пользователь, браузер может загружать с повышенным приоритетом. Допустим, пятая картинка весит 1 мегабайт и отдаётся сервером со скоростью не более 100 килобайт в секунду. При прокрутке страницы пользователю не придётся ждать 10 лишних секунд — она будет загружена заранее, пока пользователь читает начало темы. Также непонятно что будет с изображениями в случае с ленивой загрузкой, если пользователь захочет сохранить страницу, не прокручивая её до конца.factotum:Ок, пример с картинками: на странице 10 картинок. в экране 3. вместо десяти одновременных запросов 3.
Хорошо. Вот код:factotum:Про скрипты разговор не нужен, все видно в вэб-консоли.
<!DOCTYPE html>
<script>var start = new Date().getTime();</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
jQuery(function($)
{
var elapsed = new Date().getTime() - start;
document.body.innerHTML = elapsed;
});
</script>
Я уже писал, если вы размещаете все свои скрипты у себя на хосте — никаких проблем с таймаутами не будет. Если ваш хост недоступен — он недоступен полностью, а не только для скриптов. И наоборот. Не высасывайте проблему из пальца.factotum:о таймаутах при блокирования хостов промолчу.
Решение для чего?factotum:предложите решение на аджакс. хотя бы что нибудь.
Я не просто так указал и время до готовности страницы и без наличия jQuery в кэше:factotum:у меня >60% визитов новые. я не знаю, что им рассказать про кеш
Сейчас задержка на грани реакции пользователя даже при отсутсвии копии jQuery в кэше. А теперь расскажите мне, как её сделать ещё меньше. Мои представления о работе браузера говорят, что любая дополнительная логика только увеличит задержку. Очень интересно посмотреть, как теория расходится с практикой.VEG:На моей машине в Firefox (27 активных расширений) — 70мс с кэшем и 220мс без кэша; в Chrome — 20мс с кэшем и 180мс без кэша.
Я писал, что в некоторых случаях асинхронная загрузка оправдана. Этот ворох мусорных скриптов — как раз тот случай. Они никак не помогают работе конкретной страницы. А мы сейчас обсуждаем асинхронную загрузку jQuery и других скриптов, без которых страница не работает.factotum:facebook-jssdk
twitter-wjs
plusone
openapi.js
adsence
гугле аналитика
яндекс аналитика
Что вы хотели сказать этим? Вы вообще читаете что я вам пишу?factotum:http://artzstudio.com/files/Boot/test/benchmarks/script.html
как то так
К сожалению, те способы асинхронной загрузки, которые знаю я, только увеличивают задержку между началом получения браузером страницы и готовностью документа для работы. Если бы знал способ уменьшить задержку — не спрашивал бы вас.factotum:VEG, да попробуйте уже наконец сами
небольшие заметки на полях...VEG:factotum, на данный момент, как я понимаю, head.js в этом плане самый гибкий и удобный?