wydajne ładowanie plików jquery i javascript w szablonach django

W jednym z moich projektów django używam wielu niestandardowych skryptów jquery i wielu wtyczek jquery typu open source. Teraz, jeśli załaduję wszystkie skrypty jquery w moim szablonie bazowym, załaduję dużo nieużywanego kodu javascript w szablonach, które nie wymagają żadnych / niektórych załadowanych plików jquery, co wpłynie na czas ładowania strony tego konkretny szablon.

Tak więc obecne podejście, które podejmuję, jest

Załaduj podstawowe skrypty jquery w szablonie podstawowym (wymagane przez każdy szablon)Zdefiniuj blok dla js w szablonie bazowym i selektywnie załaduj potrzebne javascript dla każdego templates.e.g{% block selective_js %}{% endblock selective_js %}

Powyższe podejście działa dobrze, ale jedynym problemem, jaki widzę, jest dużo powtórzeń kodu w szablonach. Powiedz na przykład:

Mam następujące pliki javascript

<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.1.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.2.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.3.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.4.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.5.js"></script>

Teraz w więcej niż jednym szablonie potrzebuję wszystkich wymienionych wyżej plików javascript, a także chcę zainicjować niektóre metody w wymienionych skryptach. Obecnie muszę to zrobić we wszystkich szablonach:

{% block selective_js %}

    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery.1.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery.2.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery.3.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery.4.js"></script>
    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery.5.js"></script>

    <!-- Initialize Methods -->
    <script type="text/javascript">
        $(document).ready(function() {
            $('some_element').initializeScript();
        });
    </script>

{% endblock selective_js %}

Co oznacza, że ​​w szablonach jest wiele powtórzeń kodu.

Pytanie:

Jak mogę zapobiec powtarzaniu kodu bez konieczności ładowania nieużywanego kodu javascript w wydajny sposób?

questionAnswers(1)

yourAnswerToTheQuestion