Я не знаю о .load()
, но JQuery .html()
, .append()
и некоторые другие связанные функции автоматически запускают любые теги сценария, которые они находят в данном HTML.Если load()
не сделает этого за вас, вместо этого должно быть достаточно просто использовать $.get(..., function(){$('#myElement').html();});
.Вы даже можете написать собственное расширение специально для этой цели.
Таблицы стилей могут быть другой историей.Обычно я просто использовал одну таблицу стилей для каждой страницы.
Редактировать
Я потратил еще немного времени на чтение вашего вопроса и понял, что не ответил на него полностью.
Должен ли я загружать каждый скрипт при начальной загрузке приложения?
Это действительно зависит от размера ваших скриптов и того, как вы ожидаете, что пользователи будут взаимодействовать с вашей системой.В этом семинаре люди, создавшие Google Wave, рассказывают о том, как они решили эту проблему.В какой-то момент оратор говорит: «Воспринимаемая задержка - это самая важная вещь для оптимизации».Проблема заключалась в том, что в ранней версии их файл javascript (оптимизированный и скомпилированный GWT) занимал несколько мегабайт.Людям с медленным соединением (например, браузером сотового телефона) придется долго ждать загрузки всего этого кода, прежде чем они смогут увидеть, что находится в их Входящих.Их решение состояло в том, чтобы создать «точки разделения» в их коде, чтобы он мог загружаться порциями.Код, необходимый для отображения папки «Входящие», может быть загружен первым, тогда как панель «Контакты» может подождать, пока пользователь не нажмет «Контакты».
Но вы можете зайти слишком далеко.Другой выступающий в этом видео говорит, что время, затрачиваемое на загрузку, подпадает под одну из двух категорий:
- Выборка данных, которые вам не нужны, и
- Слишком много запросов HTTP
Каждый HTTP-обход включает в себя определенное количество служебной информации, поэтому может быть целесообразно загрузить некоторый код, который вам пока не нужен, чтобы избежать необходимости повторного обходапоездка за несколько миллисекунд, когда вы понимаете, что вам это нужно.
Поскольку вы говорите:
Это приложение никогда не будет "таким большим"
... Я предполагаю, что вы, скорее всего, попадете в последнюю категорию (слишком много HTTP-запросов).Лучшее, что можно сделать в этом случае:
- Используйте инструмент, подобный Chirpy , чтобы объединить все ваши файлы javascript в один файл (который можно автоматически свернуть, если не в DebugРежим).
- Если в вашем приложении есть страница входа, которая не использует все эти функции javascript, добавьте тег
script
для этого файла javascript внизу страницы входа в систему, чтобы браузер пользователя загрузил этот файл.сцены, пока пользователь занят вводом своего имени пользователя и пароля.Главная страница для остальной части сайта должна просто включать файл сценария один раз в стандартный тег script
. - Убедитесь, что правила кэширования вашего сайта настроены правильно, чтобы браузер пользователя запрашивал этот файл только один раз..
- Убедитесь, что ваш сайт настроен на сжатие этого файла javascript, так как javascript (особенно уменьшенный javascript) прекрасно подходит для сжатия gzip.
Как только вы это сделаете, выдолжен обнаружить, что при загрузке вашего файла javascript «ощутимая задержка» отсутствует.
Если ваше приложение в конечном итоге станет «таким большим», вы захотите разбить вашу программу на модули, как это сделала команда Google Wave.,Но выбирайте свои модули исходя из того, как вы ожидаете, что система будет использоваться.Например, если только небольшая группа пользователей может использовать ваш интерфейс администратора, вам нужно поместить весь код интерфейса администратора в отдельный модуль, который «обычным» пользователям никогда не придется загружать.
Решая, где провести черту, эксперты по пользовательскому интерфейсу в основном говорят, что одна пятая секунды - это точка, в которой мозг типичного человека начинает задаваться вопросом: «Это сработало?» Если пользователь нажимает кнопку и ему нужно подождать дольше, прежде чем он увидит, что что-то происходит, вы достигли точки «предполагаемой задержки». Все, что за этим будет становиться все более раздражающим для пользователя.