Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   перенос подключение скриптов в header (https://javascript.ru/forum/css-html/32162-perenos-podklyuchenie-skriptov-v-header.html)

Артем125 05.10.2012 14:45

перенос подключение скриптов в header
 
Здравствуйте!

хочу оптимизировать загрузку, чтобы сначала грузился Html, затем css и в конце js


сейчас такая структура
<html>
<body>
<script type='text/javascript' src='jquery.js'></script>


$(document).ready(function(){

$("#x").ajaxForm(function() {

  });

})

</body>
</html>


при переносе подключения скрипта ниже вызова, перед </body> пишет ошибку TypeError: $("#x").ajaxForm is not a function

скриптов очень много переносить, как бы из перенести без проблем и ошибок,

Спасибо!

Skipp 05.10.2012 14:49

Так у вас и в head будет грузиться сначала html потом js с css.

Таким способом вы никак не оптимизируете загрузку, как говориться от перемены мест слагаемого сумма не меняется.

Артем125 05.10.2012 14:55

так мне необходимо чтобы сначала css, потом js грузились, а то количесвто их большое и вес соответсвенно


все же сумма меняется, по крайней мере в моем примере), пол метра весят js, вот и хочу чтобы они в конце грузились, а тут ошибка не пойми какая

Skipp 05.10.2012 15:01

ну тогда указывайте порядок в html
<link ...
...
<script ...
...
Но это никак не поможет, это только изменит очередь загрузки.
Объединяйте файлы, сжимайте их, избавляйтесь от лишнего, картинки в спрайты.

dmitriymar 05.10.2012 15:01

Цитата:

Сообщение от Артем125
вот и хочу чтобы они в конце грузились, а тут ошибка не пойми какая

$(document).ready замени на window.onload

Артем125 05.10.2012 15:13

я думаю очередь загрузки должна влиять, разве не верны рассуждения ниже?

разве не такой порядок загрузки сейчас
css 200 килобайт
js 500 килобайт
дом дерево 30килобайт

в результате юсер увидит страницу после js, несколько дольше, собственно такой же порядок и в faerbag во вкладке сеть

Артем125 05.10.2012 15:14

Цитата:

Сообщение от dmitriymar (Сообщение 208345)
$(document).ready замени на window.onload

плохой вариант, фалов сотни, везде не поменяешь на рабочем то серваке

может есть получше решение, типа вот этого, но подключить то подключим, но придется переписывать $(document).ready(function(){ и другие куски кода, не понятно еще как

<script type="text/javascript">
         function onLoadScript () {
             var scri = document.createElement('script');
             scri.src = '<путь к файлу>';
             document.body.appendChild(scri);
         }
         window.onload = function () {setTimeout(onLoadScript, <количество миллисекунд после загрузки документа>)}
</script>

Skipp 05.10.2012 15:32

DOM строиться независимо от того загрузились ли css или js.

Самая большая проблема это не размер файлов, а их количество, так как только на одно ожидание ответа уходит примерно 30% времени. И хоть браузеры давно многопоточны и загружают это всё пачками, всё равно одним махом они это не делают.

NikolasGrad 13.10.2012 05:16

Цитата:

Сообщение от Артем125 (Сообщение 208338)
пишет ошибку TypeError: $("#x").ajaxForm is not a function

Не подключен плагин jquery.form.js


Часовой пояс GMT +3, время: 00:34.