Приветствую! Имеется на сайте .js для поиска, ссылка на него находится в head сайта, как его загружать в конце загрузки всего содержимого страницы c кешированием, в общем чтобы вместе с тем работал корректно?
Если я размещу подгружаемый .js в нижней части страницы, будет ли это допустимо с точки зрения сайтостроения и не возникнет ли каких-либо неожиданных проблем?
в общем-то так и делается. если разместить стили внизу то страница будет моргать так как сначала бразуер применит дефолтные правила а потом натянет на них указанные каскады стилей. поэтому стили размещают вверху. а вот скрипты обычно размещают внизу так как скрипт имеет право менять дерево документа и следовательно браузер обязан встретив скрипт остановить рендер, загрузить файл скрипта, выполнить его в текущем (обрезанном окружении) и только потом продолжить. поэтому скрипты, тем более увесистые, размещают ниже. частный случай - если сайт полностью построен на js-интерактиве то показывается некоторая заглушка в стиле "загружаем, обожди..." и когда все скрипты загружены - они перерисовывают страницу. и соответственно обратная совместимость - если у человека не работает js или не загрузились по каким-то причинам скрипты то он всё равно должен иметь возможность работать с сайтом в менее интерактивном режиме.
Спасибо за информацию! У меня все проще, это скрипт поиска, наверное придется скрывать окошко поиска до загрузки скрипта. Добавлено спустя 7 минут 20 секунд: +После переноса вниз. Создается впечатление, что хоть скрипт и внизу, но фоновые изображения грузятся все равно позже него.
скрипт надеюсь статикой лежит? веб-сервер надеюсь его отдает без запуска всяких лишних интерпретаторов? веб-сервер надеюсь сопровождает его заголовками кэширования и кондишнл-гета?
Скрипт лежит у хостера, я сам не занимаюсь сервером. Вот только заметил что стоит <content="no-cache"> - это имелось ввиду?
конкретнее где и как именно это написано? данная директива запрещает кэширование того документа в котором она указана, но по идее не распространяется на ресурсы которые он использует.
Это в head страниц сайта, сейчас думаю, нужно разрешить кеширование. Выглядит так: <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <meta http-equiv="Pragma" content="no-cache"> Добавлено спустя 4 минуты 2 секунды: в .htaccess строчку php_value output_handler ob_gzhandler добавлял, о как то без особых убыстрений загрузки
js-скрипт же не через пхп загружается? сжатие потока тут не решит проблему если например процессорного времени на сжатие будет тратиться больше чем на простую отправку файла.
Нет, вставлено вне php кода как <script src="source/name.js"></script> Фоновые картинки и swf файлы грузятся после скрипта, хотя опускать его ниже некуда
хронологию утилизации сети сможете показать? в хроме F12 или Ctrl+Shift+J, закладка Networking, обновить страницу, сделать скриншот и так далее.
ахахаха. там кажется проблема не в js. из 539 запросов для генерации страницы 529 запрашивают картинки-иконки. и на все это дело у браузера уходит секунды 4 в среднем. в общем графику в спрайты (это скорее всего ваш путь ибо вряд ли вы осилите спди или хттп2) и уже потом смотреть как работает сайт