Сегменты URL в стиле движка выражения с помощью jQuery - PullRequest
0 голосов
/ 09 июня 2011

Добрый день, ребята,

Недавно я работал с EE и был очень впечатлен их маленькой, но гибкой функцией сегмента URL.

Так что я хоть и буду полезен при разработке JS и что бы услышать ваши мысли и идеи как это можно сделать.

Кто не знает, вот небольшое объяснение:

EE сегмент URL используется для сравнения значения части URL после каждого "/", и у них есть сегмент1 "/", который является значением основной части URL после имени домена, сегмент2 "/../", который является следующим значением части URL и т. Д. .

Почему меня это интересует?

Я хочу создать один файл JS и вызывать для него детали только на тех страницах, которые мне нужны.

Например, если первый сегмент URL пуст, я буду вызывать JS для домашней страницы.

Если первый сегмент URL / контакт, я позвоню JS для страницы контактов (проверка и т. Д.).

Если вторым сегментом является / get-to-us (/ contact / get-to-us), я буду называть только JS для карты Google и т. Д.

Итак, вопрос в том, как взять и сравнить сегменты с помощью jQuery.

P.S. Объяснение на сайте EE http://expressionengine.com/wiki/URL_Segment_Variables/

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Я согласен с D-Rock. Идея динамически загружать JavaScript на основе URL-адреса кажется большой работой при очень низкой окупаемости инвестиций & mdash; не говоря уже об увеличении сложности и обслуживании сайта.

Однако, чтобы достичь своей цели, есть несколько способов приблизиться к этому:

  • Вставьте JavaScript для текущего URL в шаблон этой страницы (никаких условий не требуется, хотя не весь ваш JavaScript находится в одном месте).
  • Ссылка на встраивание / фрагмент кода для всего сайта на каждой странице, а затем использование условных выражений для отображения только того, что вам нужно (в соответствии с рекомендациями D-Rock).

В зависимости от ваших потребностей или требований, вам может оказаться проще просто включить весь JavaScript вашего сайта в один внешний файл и позволить браузеру загружать и кэшировать файл. Преимущество этого заключается в простоте обслуживания и уменьшении последующих загрузок страниц (поскольку браузер может загружать файл из своего кэша).

Однако вы планируете использовать условные выражения, при выборе между Простые или Расширенные условные выражения , используйте простые условные выражения перед расширенными условными выражениями & mdash; это проверенная рекомендация по производительности .

1 голос
/ 09 июня 2011

Кажется, это гораздо больше работы, чем нужно. Почему бы просто не загружать отдельные файлы JS условно в ваш шаблон?

{if segment_1 == 'contact' && segment_2 == ''}
<script type="text/javascript" src="/assets/js/validation.js"></script>
{/if}

{if segment_1 == 'contact' && segment_2 == 'get-to-us'}
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="/assets/js/map.js"></script>
{/if}

Etc ...

Я знаю, что это не отвечает на ваш конкретный вопрос, но кажется, что это более дешевый способ достижения вашей цели.

...