Отправить голову перед телом, чтобы загрузить CSS и JS как можно скорее

Интересно, нашел ли кто-нибудь способ отправки в середине рендеринга тега head, чтобы CSS и Javascript загружались до завершения рендеринга страницы? На рендеринг нашей страницы уходит около 523 мс, а ресурсы не загружаются до тех пор, пока страница не будет получена. Я сделал много PHP и возможно очистить буфер до конца скрипта. Я пытался добавить Response.flush() в конце мастер-страницы page_load, но макет страницы ужасно сломан после. Я видел много людей, использующих панель обновлений для отправки контента с использованием AJAX после этого, но я не совсем понимаю, какое влияние это окажет на SEO.

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

4 ответа

Решение

Не помещайте Flush в код позади, но на свою HTML-страницу как:

</head>
<%Response.Flush();%>
<body >

Это может создать эффект наложения на странице, поэтому вы можете попытаться переместить флеш даже чуть ниже на страницу.

Также на странице советов Yahoo в Flush the Buffer Early
http://developer.yahoo.com/performance/rules.html

Кеш на статике

Кроме того, вы можете добавить клиентский кеш на статический контент, такой как css и javascript. На этой странице есть все способы для всех версий iis.

http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache

Следовать за

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

Я использую этот уменьшенный http://www.asp.net/ajaxlibrary/Download.ashx с очень хорошими результатами и уменьшенным в реальном времени.

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

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

Также рассмотрите возможность включения GZIP на вашем сервере, если вы еще этого не сделали. Это сжимает файлы на лету, что приводит к меньшим передачам.

Вы можете сделать переход или показать, как только документ был загружен. Просто установите отображение тела: нет;

Вы можете использовать jQuery для запуска вашего js, как только он будет загружен.

$.fn.ready(function(){
    //Your code here
})

Или вы можете просто взять автономную функцию ready -> $ (document).ready эквивалентно без jQuery

Другие вопросы по тегам