Thanks for your email.   Still could not get it to work.  I probably
do not understand well how this thing (jquery/turbogear/cache)
supposed to work.  I will dig into it further, any additional
suggestion is greatly appreciated.  -tpn

My answers to your questions:
======================

(1)  There is no particular reason to use local import, I need to clean up that.

(2)  The call (load) works fine, as shown in the output, but the
replacement of "timetest" does not happen when "get time" is clicked.
I also modified the code to add a random number to the query such as
load("/time?sid=" + Math.random())... but does not help though.

Below are the sample code and the output (btw, I tried this on both
Firefox and IE, no difference).  Also I did not see any difference
between using $('timetest') versus $('#timetest')

template:
=======
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml";
      xmlns:py="http://genshi.edgewall.org/";
      xmlns:xi="http://www.w3.org/2001/XInclude";>

  <xi:include href="master.html" />

<head>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type"
py:replace="''"/>
  <title>Learning TurboGears 2.0: Quick guide to the Quickstart pages.</title>
  <script type="text/javascript">
     $(document).ready(function(){
       $('a').click(function(event){
           $('#timetest').load("/time?sid=" + Math.random())
       });
     });

   </script>
</head>

<body>
  <div id="timelink"><a href = "#">get time</a></div>
  <div id="timetest" py:replace="now"></div>
</body>
</html>


Controller (root.py)
==============
   @expose('helloworld.templates.about')
    def about(self, **kw):
        jquery_js.inject()
        return dict(now=time.ctime())

    @expose()
    def time(self, sid):
        print "time is called ...sid=%s" % sid
        return dict(now=time.ctime())


Output (server console):
=================
serving on 0.0.0.0:8080 view at http://127.0.0.1:8080
time is called ...sid=0.7600414370879561
time is called ...sid=0.08766271084959143
time is called ...sid=0.9154010756223916
time is called ...sid=0.13931412162353551
time is called ...sid=0.9629765981657245
time is called ...sid=0.19117089588204772
time is called ...sid=0.6440978896256766
time is called ...sid=0.550432448440006
time is called ...sid=0.9023927250869724
time is called ...sid=0.1985474145942756
time is called ...sid=0.14242761973297957
time is called ...sid=0.5346612822522109
time is called ...sid=0.6367426755820135


tpn


On Mon, Dec 14, 2009 at 12:27 PM, Diez B. Roggisch <[email protected]> wrote:
> Hi,
>
>
>> I followed your suggestion and was able to inect jquery_js to my
>> controller.  However, I am running into a problem.  Below is the
>> sample code.  I expect to see the time (id=timetest)  to be updated
>> everytime I click on "get time" link; however, it does not.   Hope you
>> can shed a light on it.   Thanks much in advance. -tpn
>>
>> From my controller  (root.py):
>> =====================
>>
>> �...@expose('helloworld.templates.about')
>>     def about(self, **kw):
>>         import time
>>         jquery_js.inject()
>>         return dict(now=time.ctime())
>>
>>     @expose()
>>     def time(self):
>>         import time
>>         return dict(now=time.ctime())
>
> Any reason you don't import time *once* on top of the module? It doesn't
> change the semantics, but local imports should only be used when there
> is good reason - circular dependencies or lazy loading.
>
>
>>
>>
>> From my template:
>> ==============
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>>                       
>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
>> <html xmlns="http://www.w3.org/1999/xhtml";
>>       xmlns:py="http://genshi.edgewall.org/";
>>       xmlns:xi="http://www.w3.org/2001/XInclude";>
>>
>>   <xi:include href="master.html" />
>>
>> <head>
>>   <meta content="text/html; charset=UTF-8" http-equiv="content-type"
>> py:replace="''"/>
>>   <title>Learning TurboGears 2.0: Quick guide to the Quickstart 
>> pages.</title>
>>   <script type="text/javascript">
>>      $(document).ready(function(){
>>        $('a').click(function(event){
>>            $('#timetest').load("/time")
>>        });
>>      });
>>
>>    </script>
>> </head>
>>
>> <body>
>>   <div id="timelink"><a href = "#">get time</a></div>
>>   <div id="timetest" py:replace="now"></div>
>> </body>
>> </html>
>
> Two questions:
>
>  - what does FireBug say? Does the call work, is there real network
> activity?
>  - some browsers aggressively cache the requests, so it's a good idea
> to randomize or add a timestamp to queries like load("/time").
>
> Diez
>
> --
>
> You received this message because you are subscribed to the Google Groups 
> "TurboGears" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/turbogears?hl=en.
>
>
>

--

You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.


Reply via email to