Why? On Tue, Sep 4, 2012 at 10:23 AM, Alec Taylor <alec.tayl...@gmail.com> wrote:
> AngularJS? > > > On Tue, Sep 4, 2012 at 11:39 PM, dotnetCarpenter <jon.ronnenb...@gmail.com > > wrote: > >> Hi all. >> >> I'm new here and just took over a Django project for the first time. I'm >> still getting to grip with Django but as a front end dev for the past 5 >> years, I'm also looking for a client-side library/framework to go together >> with my project. >> My requirements for a JS framework is that it: >> >> 1. is unobtrusive (Django rendered HTML will be shown to scraper bots >> like google) >> 2. provides some sort of structure (MVC, MVP, MVVM ect.) >> 3. embraces standards >> 4. doesn't conflict with Django templates or does so intentionally >> 5. ideally uses the same template language as Django >> >> In the ideal world a request/response scenario would look like this: >> >> 1. A client make a (HTTP) request to the (django powered) web site >> with (HTTP) Accept header text/html >> 2. Django response in the usual way by rendering the assign View >> (django template) >> 3. The view figure out if JS is supported (implemented in JS). If no, >> this scenario stays in loop 1-3. If yes, then 4. >> 4. The client (usually a browser) wire up the client-side app >> structure, hook in to URI links, add transitions between views, >> data-bindings ect. >> 5. Subsequent request are now handle by the JS framework, either user >> initiated (e.g. clicking a link) or app initiated (e.g. pulling extra >> data), that will modify the request header to Accept header >> application/json or application/django-template. >> 6. If django receive a request with an application/django-template >> header it will serve the view as plain text. E.g. Content-type: >> text/plain. >> On the other hand if django receive a request with application/json, it >> will send the object model defined in the view as JSON. >> 7. The client-side JS framework will receive a template to render in >> the first request and the data to render in the template in the second >> request. A promise object could be used to synchronize the two calls. >> >> This way django will work as intended for non JS clients and silently >> convert to a RIA in clients that supports JS, with minimal double work for >> the two execution contexts. >> A big pro in this is the fact that both django and the JS framework share >> template and data (only has to defined once - in django) - we'll duck type >> all the way. But does this JS framework exist? Does anyone have any >> experience with working with django and JS frameworks? Is there any obvious >> pitfalls in my ideal world scenario in regard to Django? And finally, is it >> possible to serve templates as plain text with django? >> >> >> Cheers, Jon and thanks in advance >> >> PS. I accidentally cross-posted this to the Django Developers group >> before realizing it was the wrong forum. Sorry about that. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/django-users/-/WrIx5DWqCVgJ. >> To post to this group, send email to django-users@googlegroups.com. >> To unsubscribe from this group, send email to >> django-users+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/django-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > -- Marcin Tustin Tel: +44 (0) 7773 787 105 (UK) +1 917 553 3974 (US) -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.