Вход • Регистрация

Правильное расположение тега show_js

  • 19 сентября 2016 г.
  • Итак, уважаемые старожилы. Приступил к интеграции дизайнов на этот замечательнейший двиг. Однако есть несколько вопросов:
    1. Все уходит в кнопку кастом и берется оттуда. Это немного непривычно после перехода от распространенных систем. Ноне этоглавное.
    2. Данный пункт непонятен больше всего. В документации http://www.diafan.ru/dokument/full-manual/templates-functions/#show_js сказано, что этот тег нужно вставлять перед </body> и он после формирования шаблона впихнет JQuery библиотеку. Однако, если перед этим тегов вставить любой код от плагинов на JQuery, то яваскрипт консоль при исследовании шаблона будет выдавать ошибку неизвестного тега "$" и все скрипты вываливаются и не функционируют. Вроде бы не глупые люди писали двиг, но как-то не особо вяжется данный прикол с логикой и документацией библиотеки, в которой говориться о подключении самой библиотеки, а потом уже кодов JQuery. Пришлось пихать show_js между <head> </head>. Что вы думаете по данному поводу?
    • 19 сентября 2016 г.
    • Что мешает свои скрипты прописать в show_js ?
      • 19 сентября 2016 г. , редакция: 19 сентября 2016 г.
      • ну так-то надо их ложить в папку js в корне модуля (или его админки) к которому необходимо подключить скрипт и соответственно обозвав. Тогда Diafan сам поймёт что есть скрипты которые надо подключить правильно и всё сделает как надо.
    • 19 сентября 2016 г. , редакция: 19 сентября 2016 г.
    • Тег show_js вполне логично располагается внизу страницы. Сейчас распространённой практикой ускорения загрузки страницы является размещение скриптов и ссылок на JS-библиотеки перед закрывающим тегом </BODY>.
      Цитата
      [Партнер] Эдуард (Eduard) 4Сегодня, 00:47
      не особо вяжется данный прикол с логикой и документацией библиотеки, в которой говориться о подключении самой библиотеки, а потом уже кодов JQuery.
      Скорее ваши действия не вяжутся. С документацией нет противоречий. Это ведь вы размещаете jquery-скрипт перед библиотекой, а не Diafan.

      Просто размещайте код скриптов после шаблонного тега show_js. Можете либо дописать ссылку на свой собственный JS-файл, где будете размещать все скрипты, либо непосредственно в шаблоне разместите js-код. Или в поле админки для JS-кода, как советовал Виталий.
      • 19 сентября 2016 г.
      • Получается автор библиотеки и почти весь интернет тоже гонит раз размещает сначала вызов библиотеки? Каким боком, если поместить после код, то библиотека поймет где и что делать?
        • 21 сентября 2016 г.
        • Ещё раз: Diafan загружает библиотеку Jquery в совершенно конкретном участке шаблона. Это константа.

          Ваш выбор - разместить свой код до этого места и тогда он работать не будет, либо после - тогда он будет работать.
          Вы размещаете до. Код не работает (что закономерно). При чём тут Diafan?
          • 22 сентября 2016 г.
          • Скажем так. По правилам раньше все пихалось в хеад. Вопрос уже решен!
    • 19 сентября 2016 г.
    • Отдельный файл js создайте и поместите его вызов в файл show_js.
  • 19 сентября 2016 г.
  • http://www.html5rocks.com/ru/tutorials/internals/howbrowserswork/#Scripts
    Цитата
    Веб-документы придерживаются синхронной модели. Предполагается, что скрипты будут анализироваться и исполняться сразу же, как только анализатор обнаружит тег <script>. Синтаксический анализ документа откладывается до завершения выполнения скрипта. Если речь идет о внешнем скрипте, сначала необходимо запросить сетевые ресурсы. Это также делается синхронно, а анализ откладывается до получения ресурсов. Такая модель использовалась много лет и даже занесена в спецификации HTML 4 и 5.

    https://habrahabr.ru/post/182310/
    Цитата
    Вот почему гуру и специалисты производительности советуют размещать элементы script в конце документа, потому что это блокирует меньше всего контента.

    И ещё море информации, стоит только погуглить.

    Требования совать JS в head уже давно нет, его можно исполнить в любом месте страницы.
  • 19 сентября 2016 г.
  • Цитата
    Однако, если перед этим тегов вставить любой код от плагинов на JQuery

    Для этого есть поле JavaScript в каждом элементе админки. Суйте код туда, он в show_js выведется
    • 19 сентября 2016 г. , редакция: 19 сентября 2016 г.
    • Цитата
      Виталий (DIAFAN.CMS) Модератор 36 минут назад
      Для этого есть поле JavaScript в каждом элементе админки.
      Не в каждом элементе. Это поле есть у страниц, находится в дополнительных параметрах страницы, внизу колонки.

      Если к странице прикреплён модуль, то размещённый в это поле код будет подгружаться на всех страницах модуля. Разместить таким образом код для конкретного элемента модуля (например, для конкретной статьи модуля "Статьи") не получится.

      Отмечу также, что хоть поле и предназначено конкретно для JS-кода, размещать его в поле необходимо в обёртке <script></script>, иначе код выведется на странице внизу просто как текст.
      • 19 сентября 2016 г.
      • Цитата
        Не в каждом элементе. Это поле есть у страниц, находится в дополнительных параметрах страницы, внизу колонки.
        Ну да, у страницы, опечатался. Для отдельной статьи можно включить галку HTML вместо визуальника и бахать код туда.
        Ну а если именно JQuery код, то можно один файл jquery.js из show_js вынести и подключить в шаблон выше show_body
        • 19 сентября 2016 г.
        • Можно подробнее, а то немного без 100 грамм не разобраться.
          • 22 сентября 2016 г.
          • Простите меня конечно, но я удивляюсь как человек со статусом партнер имеет такие вопросы.
            • 22 сентября 2016 г.
            • Всё очень просто: (Партнёр - не обязательно должен быть разработчиком)
              • 22 сентября 2016 г.
              • "Партнер" = представитель веб-студии, который имеет скидку на лицензии.
            • 22 сентября 2016 г.
            • Какие вопросы? По работе системы? Ну да, партнер родился уже с этими знаниями ;) А если по делу, то http://jquery.page2page.ru/index.php5/%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_jQuery все предлагается запихнуть в <head></head>
              • 23 сентября 2016 г. , редакция: 23 сентября 2016 г.
              • Они там пихнули его в head специально, чтобы потом у людей не возникло проблем, если у них какие-то скрипты наверху расположены
                А по поводу партнера у меня было неправильное знание) Так что приношу свои извинения
  • 19 сентября 2016 г.
  • Установил все как написано в документации и все запахало без ошибок, но по логике вещей и как описано в куче мануалов важна последовательность прописывания библиотек и всех конструкций плагинов, а иначе пахать не будет.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум