Le 24/08/2013 04:44, Mantas Zilinskis a écrit :
this might help you

http://stackoverflow.com/questions/1879872/django-update-div-with-ajax

let me know if you need more help

Thank you for this good pointer.



On Fri, Aug 23, 2013 at 10:51 AM, Bastien Amiel <b.am...@evs.com <mailto:b.am...@evs.com>> wrote:

    Le 23/08/2013 17:01, Mantas Zilinskis a écrit :
    can you post all of chat.html



    On Fri, Aug 23, 2013 at 7:04 AM, Bastien Amiel <b.am...@evs.com
    <mailto:b.am...@evs.com>> wrote:

        Le 23/08/2013 11:26, Huu Da Tran a écrit :
        On Thursday, August 22, 2013 8:42:04 AM UTC-4, Bastien Amiel
        wrote:

            I need to update the chat when an event come but :

            1.
            If I update my chat sub page, inputs are reset (seems
            logic since html
            is recreated).


        You can always have some field that keep when the chat was
        started (in the session), and redisplay everything since
        that time.

            Then what would be the good / best method to update only
            the chat content ?
            (I have 2 ideas but they don't seems very Django'ic)

            2.
            For now, I update the content every XX ms with a
            periodic request client
            side.
            Would it be possible / preferable to have a push from
            server when new
            data comes or is there a better way to update this kind
            of content ?


        Trying to hack django to get server push would be hell (look
        into tornado). If you really need server push, you may need
        to look into other technologies, like nodejs.

        Using the periodic request client-side is what is mostly done.


        Hope this helps.

        HD.

        1.
        My question was not clear enough,
        Let's admit i have this template page :

        /{% for elem in data %}//
        //    <div>//
        //        <a class="chattime">{{ elem.datetime }}</a>//
        //        <a class="chatname">{{ elem.name <http://elem.name>
        }} :</a>//
        //        <a class="chatline">{{ elem.text }}</a>//
        //    </div>//
        //{% endfor %}//
        //<a>Text : <input id="chatinput"></input></a>/

        and this view.py :

        /def getchat(request)://
        //    template = loader.get_template('chat.html')//
        //    context  = RequestContext(request, { 'data': lines
        })//# lines is an array with lines
        //    response = {'html' : template.render(context)}//
        //    return HttpResponse(json.dumps(response),
        mimetype='application/json')/

        and this javascript :

        /function getchat()//
        //{ //
        //    $.post('/getchat')//.done(function(data, textStatus,
        jqXHR) //
        //    {//
        //$("#chat").html(data["html"])//
        //    })//
        //}

        /Then whenever I call getchat() in javascript, the chat is
        reloaded with all the old lines, this point is ok, but
        <input> field is reseted too, which mean that if user was
        typing, the content is erased.
        I would say the solution is to create a second function in
        view /getchatcontent/ that will send only the content so I do
        not
        update the whole thing. Do you think it is the right way ?


        2.
        lets use periodic request client-side.



        Thank you for your answer


    There is nothing more in chat.html
    there is a base.html template that contains

    /<head>//
    //{% load staticfiles %}//
    //<script type="text/javascript" src='{% static "jquery-1.9.1.js"
    %}'></script>//
    //<script type="text/javascript" src='{% static "appchat.js"
    %}'></script>//
    //</head>//
    //<body>//
    //<div id="chat">//
    //</div>//
    //<button id="addline">post</button>//
    //</body>/


    appchat.js


    /$(document).ready(function()//
    //{//
    //    $("#addline").click(function()//
    //        {//
    //            addline($("#chatname")[0].value,
    $("#chatinput")[0].value);//
    //            $("#chatinput")[0].value = "" //
    //        })//
    //    setInterval(function() { getchat() }, 1000);//
    //})//
    //
    //function addline(name, text)//
    //{//
    //$.post('/addline', {"name":name, "text":text})//
    //    .done(function() //{//})//
    //}//
    //
    //function getchat()//
    //{ //
    //   $.post('/getchat')/
    /
    //    .done(function(data, textStatus, jqXHR) //
    //        {//
    ////       $("#chat").html(data["html"])//
    //        })//
    //}/


    Now you have everything, does this seems the right way to do what
    I want to achieve with django or is there a better way ?


--
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+unsubscr...@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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to