Хранение моего кода JQuery вдали от HTML-файлов - PullRequest
3 голосов
/ 18 июня 2009

Я изучаю jQuery и создал несколько плагинов. К сожалению, из-за практики кодирования моей компании они хотят, чтобы весь код javascript был извлечен в файлы js. Это для меня ставит две проблемы:

  1. Могу ли я извлечь фактический $ (document) .ready (..) вызов в файл js? До сих пор с моими ограниченными знаниями я не понял, возможно ли это вообще. Если нет, я приветствую любые предложения, чтобы сделать этот код более понятным и приемлемым.
  2. Слишком много включений javascript для каждого заголовка страницы asp.net, поскольку я могу использовать несколько плагинов. Есть ли способ уменьшить потенциальные дорогостоящие поездки на сервер, которые мне придется совершать каждый раз, когда мне нужны эти файлы?

Любые предложения, исправления приветствуются

спасибо

Ответы [ 5 ]

8 голосов
/ 18 июня 2009

1. Абсолютно.

Просто добавьте ссылку на скрипт в ваш html следующим образом:

<script type='text/javascript' src='js/yourfile.js'></script> 

Тогда просто запустите ваш файл .js с

jQuery(function() {
  foo;
  ...
  bar;
});

или любые другие способы быстрого запуска блока кода jQuery.

2. Вы должны запустить свои скрипты через что-то вроде Сократить перед отправкой их пользователю. Это объединит файлы и упакует их так, чтобы они занимали меньше места.

2 голосов
/ 18 июня 2009

Использование $ (document) .ready () во внешнем файле javascript - это нормально - это будет работать точно так же :) На самом деле - это не только будет работать, но и является хорошей практикой, поскольку помогает разделить контент ( HTML) из поведения (Javascript).

В ответ на вопрос вашего раздела - вы можете объединить все свои плагины в один файл javascript и добавить ссылку на него внутри . Вы также можете попробовать минимизировать сценарии, хотя обычно это немного излишне, пока сайт не заработает.

Когда я использую jQuery, я обычно использую такую ​​структуру:

<html>
  <head>
    <!-- html tags such as title, link, meta etc -->
    <script type="text/javascript" src="/path/to/jquery.js"></script>
    <script type="text/javascript" src="/path/to/plugin.js"></script>
    <!-- more plugins included if required -->
  </head>
  <body>
    <!-- html here -->

    <!-- script is the last thing before the ending body tag (increases performance) -->
    <script type="text/javascript" src="/path/to/your_jQuery_code.js"></script>
  </body>
</html>
1 голос
/ 18 июня 2009

В этом нет ничего плохого, если поместить вызов document.ready во внешний файл. на самом деле, это то, что я делаю, чтобы отделить мои JS от моего HTML. если вас интересуют определенные функции, выполняемые на определенных страницах, вы можете просмотреть их с помощью

var path = window.location.pathname;
if (path == "/yourdir/yourpage.html") {
    //do something for this page only
}

или вы можете просто включить определенные файлы только на определенных страницах.

1 голос
/ 18 июня 2009

Вы совершенно определенно можете поместить свой document.ready и весь другой код JavaScript во внешний файл.

Обычно у меня есть 2 вызова - один для самого jQuery и один минимизированный файл global.js, который объединяет и минимизирует все мои отдельные файлы.

Лично я хотел бы использовать для этого блендер , но есть и много других доступных вариантов.

1 голос
/ 18 июня 2009

Я думаю, что беспокойство по поводу поездок на сервер для javascript включает преждевременную оптимизацию. У вас есть доказательства того, что эти страницы загружаются медленно? Браузер должен кэшировать файлы JavaScript.

Если у вас есть доказательства того, что это проблема, вы можете

- объединить код jquery и все плагины в один файл
-записать обработчик содержимого .net, чтобы сделать это для вас (возможно, перебор)

Затем вы можете добавить собственный файл js для каждой страницы для обработки специфических свойств страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...