Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <script>и внутренности</scrtipt> 
:(
    Опции темы
Win MK 32
Дата 23.5.2009, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Как вообше лучше всего использовать код Java Script?
1) Включать файл с кодом в страницу (как лучше?) или включать сам код в страницу? Писать его под кожей или в черепе страницы? Если в черепе то в до или после meta-тегов?
2) Какой из атрибутов использовать в теге <script> и использовать ли вообще
3) Нужны ли? <!--
-->
4) Нужны ли квадратные скобки? И зачем их вообще используют? Это аналог п.3.? Это там, где CDATA
5) Нужно ли использовать 3 и 4 в том случае, если включен в страницу не код, а файл .js?
6) Можно ли файл включать в теле(под кожей), а не в черепе страницы?
PM   Вверх
SelenIT
Дата 23.5.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



1) Чаще всего лучше отдельным файлом в <head>, после мета-тегов. Но это не жесткая догма, бывают случаи, когда оправданнее другие варианты.
2) type="text/javascript" для валидности в HTML 4.xx и XHTML 1.x. Для HTML5 можно не писать ничего.
3) Не нужны. Браузеры, для которых это было нужно, вымерли 12 лет назад.
4) Квадратные скобки CDATA-блоков - часть синтаксиса XML, без них XML-парсер выдаст ошибку, если в скрипте встретится знак "<" (парсер примет его за начало тега). Но эти скобки нарушают синтаксис JS, поэтому их самих приходится экранировать комментариями. Это актуально для XHTML-страниц, отдаваемых как XML. При подключении скриптов внешним файлом эти сложности не нужны.
5) Не нужно.
6) Можно.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Win MK 32
Дата 23.5.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



SelenIT, спасибо большое за полный и исчерпывающий ответ!
PM   Вверх
Aliance
Дата 24.5.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Я бы посоветовал бы все скрипты без исключения вставлять перед </body></html>.
источник

По поводу inline-скриптов и удаленных: тех разработчиков, которые все скрипты пишут inline (в теле страницы), можно смело расстреливать. Это убивает кеширование скриптов наповал!

По поводу же удаленных скриптов, то советую склеивать все необходимые скрипты в один, чтобы в итоговом документе был только один тег <script>. Как известно, 5 маленьких картинок будут грузится больше, чем 1 большая, склеенная из этих 5ти в фотошопе. Все дело в том, что каждое http-соединение "дорого" обходится.

Так же скрипты советую минимизировать (JSMin) в production-версиях.
PM MAIL WWW ICQ Skype   Вверх
Win MK 32
Дата 24.5.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Спасибо вам все за ответы! Приму к сведению.

У меня сейчас чудеса стали твориться. Представляете, вот так скрипт подгружается и успешно выполняется, но Dreamweaver CS4 его не видит:
Код
<script type="text/javascript" src="ajax.js"></script>

А вот так, наоборот(скрипт не подгружается, но зато Dreamweaver подцепляет его и позволяет перейти через верхнюю строку(есть такая удобная фича в CS4)):
Код
<script type="text/javascript" src="../ajax.js"></script>

PM   Вверх
Dobermann
Дата 24.5.2009, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(Win MK 32 @  24.5.2009,  21:05 Найти цитируемый пост)
(есть такая удобная фича в CS4)):

Хех)) а на хосте таких фич нет  smile 
PM   Вверх
Win MK 32
Дата 24.5.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Dobermann, это сожаление или намек на то, что не стоит мне привыкать к таким фичам? smile
PM   Вверх
bars80080
Дата 24.5.2009, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



может вся канитель оттого что в дримвивере открывается файл не того уровня, что на хосте?
PM MAIL WWW   Вверх
SelenIT
Дата 25.5.2009, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Цитата(Aliance @  24.5.2009,  14:56 Найти цитируемый пост)
все скрипты без исключения вставлять перед </body></html>

Aliance, я знаком с этой рекомендацией, но сомневаюсь, что она даст радикальное ускорение загрузки по сути — что с того, что страница визуально быстро загрузится, со всеми стилями и графикой, но долго будет нефункциональна в ожидании скрипта? Причем момент задержки будет при каждой загрузке... При традиционном подключении скрипта в "голове", да, будет задержка при первой загрузке — зато при всех последующих скрипт будет мигом браться из кеша, и страница будет и красивой, и полнофункциональной. Тем более браузеры совершенствуются (ограничение в две одновременных закачки, о котором говорится в статье, давно преодолено — у новых браузеров лимит 6-8, насколько я в курсе), а IE8 и новый Webkit даже научились закачивать два скрипта параллельно.

Есть неплохое исследование, советующее добавлять <script> динамически, это снимает блокировку других загрузок. Но я бы не советовал новичку начинать с такой оптимизации;)

И насчет inline-скриптов: конечно, подключать так библиотеки — головотяпство, но если у нас один маленький скриптик для одной-единственной страницы (напр. элементарный валидатор конкретной формы) — рационально ли открывать на него то самое отдельное http-соединение?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Aliance
Дата 25.5.2009, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



SelenIT, ты уверен в том, что если скрипт подключается в теле документа, то задержка будет всегда, а в ином случае только при первой загрузке? Кеширование же идет для обоих случаев.

PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 25.5.2009, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Aliance, Запрос хидеров - "модифицирован ли этот скрипт" будет всегда. Может это имелось ввиду?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
SelenIT
Дата 25.5.2009, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Aliance, имелось в виду состояние страницы, когда она визуально почти готова, но нефункциональна — после почти полной загрузки DOM, но до загрузки скрипта (с сервера или из кеша, после проверки last-modified, не суть важно). По моим наблюдениям, некоторых юзеров этот момент ставит в тупик. Вариант со скриптами "сверху", на мой взгляд, "честнее" — пока страница не готова, она и не видна, а если уж отрисовалась — то и ведет себя как ожидается...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Win MK 32
Дата 25.5.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Ну я вообще удивился, когда прочитал, что есть практика подключать скрипты ближе к концу html-кода smile
PM   Вверх
Aliance
Дата 25.5.2009, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



SelenIT, мне кажется твой второй пост немного противоречит первому.
Из первого у меня сложилось мнение, что подключать скрипты в head - это необходимость, т.к. иначе производительность 100% падает.
А из второго уже, что это твое мнение и хороший тон, но никак не необходимость.

Скажи, что из этого ближе к истине. Если честно, я так до конца и не понял.
PM MAIL WWW ICQ Skype   Вверх
SelenIT
Дата 25.5.2009, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Aliance, ближе второе. Плюс мое мнение, что "как бы ускорение загрузки" от вынесения скриптов в низ страницы (как советует Yahoo) — не более чем иллюзия. Для кого-то, возможно, полезная, а для кого-то (типа меня;) — и наоборот (т.к. это субъективный опыт).

А для ускорения, имхо, лучше использовать динамический элемент <script> (как советует webo.in), но только на заключительном этапе выкладки сайта, когда все прочее отлажено и проверено.

Это сообщение отредактировал(а) SelenIT - 25.5.2009, 23:53


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.