The ajax-include-pattern for Django
Author: | Keryn Knight: |
---|---|
Status: | Proof of concept |
If you've got a bunch of ajax requests in your app, you could potentially ease the HTTP round-trips by using the Ajax-include pattern as demonstrated by Filament Group. They published the library, and a bunch of code into a GitHub repository, which inspired me to hack up this proof of concept.
This assumes you're familiar with Django, virtualenv, virtualenvwrapper, and git, and are on a sensible operating system:
$ mkvirtualenv throwaway $ git clone https://github.com/kezabelle/django-ajaxinclude.git $ cd django-ajaxinclude $ python setup.py develop $ cd demo $ ./run.py syncdb --noinput $ ./run.py
Open your browser and point it at http://127.0.0.1:8000
, and see that
everything works. You'll probably need to open your browser's developer console
to see the number of requests being made.
If you've had a quick look at it, you'll note that the data changes every time
you refresh. This is because behind the scenes, the provided
AjaxIncludeProxy
view actually attempts to resolve and call every URL
passed to it in request.GET['files']
. Currently it does so very naively,
but I'll flesh it out to handle errors and exceptions at some point.
First and foremost:
- Django 1.4 (all I've tried so far)
- ajaxInclude.js v0.1.0 - 2012-08-17 - da58c8867aa56b03c0799ea7d0b6baaaae228d97
Beyond that, for the purposes of testing it out via the method documented above, you'll require:
- importd
- fhurl
- gunicorn
- smarturls