Tuesday, October 1, 2013

Re: Dealing with redundant JS inclusions at template levels

The second StackOverflow answer is probably your best bet.  Assuming your looking for a solution that avoids editing any included app templates, you'd want to use the solution that HTML5 Boilerplate uses, which is a Javascript conditional inclusion: 


<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>


When the template's loaded, that line makes the JS subsystem check whether the library-to-include has already been added to the global namespace .  If so, it skips the include, but if not, it writes it to the DOM.

An alternative that I use is to add code blocks inside <script> tags at the bottom of the base template and then add the JavaScript markup to child templates as needed.


On Monday, September 30, 2013 1:12:54 AM UTC-5, dspruell wrote:
Spent a bit of time debugging some faulty JavaScript library
functionality before I realized that I had included the library at
multiple levels in the project - first site-wide in the base template,
and then within a app. I think I ran into this:

http://stackoverflow.com/questions/4891278/what-is-the-danger-in-including-the-same-javascript-library-twice

Is there a good design pattern to this situation, bearing in mind a
need to include JS libraries at project level and a desire to use apps
that include the same libraries in an attempt to be reusable?

Looking at jQuery and Bootstrap for this.

--
Darren Spruell
phatb...@gmail.com

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/20f428e1-ff9d-4ba9-bff5-4a54f83589bf%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment