2010-06-11 102 views
1

我已經編寫了一些代碼,用於在用戶每次單擊按鈕時在瀏覽器上顯示服務器的當前日期和時間。我在jQuery的幫助下在django中使用了ajax。 現在我的問題是我必須連續顯示日期和時間,一旦按鈕被點擊。 一些示例代碼或實用程序允許這種類型的延遲將有所幫助。 在此先感謝javascript延遲輸出

模板是:

$(document).ready(function() 
{ 
      $("button").click(function() 
      { 
       $.ajax({ 
        type: "POST", 
        url :"/showdate/", 
        datatype: "json ", 
        success : function(data){ 
          var s = data.currentdate; 
          var sd = s 
          $(sd).appendTo("div"); 
          } 
       }); 

      }); 
}); 

    <button type="button">Click Me</button> 
    <div id="someid"></div> 

視圖功能是:

def showdate(request):  
     now = datetime.datetime.now() 
     string_now = str(now) 
     return_dict = {'currentdate':string_now} 
     json = simplejson.dumps(return_dict) 
     return HttpResponse(json,mimetype="application/json") 

回答

0

讓JS計算並顯示更新的日期每一秒。這樣你就可以避免一直使用新的請求來觸發你的服務器。然後每十分鐘撥打一次電話或示例一次,以確保客戶端和服務器不失步。

0

如果你想連續更新的東西比使用在JavaScript中可用的功能SetIterval。它不斷調用函數。

檢查更多關於setInterval函數:http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

示例代碼:

<form name="myForm" action="" method="POST"> 
<input name="myClock" type="Text"> 
<script language=javascript> 

self.setInterval('clock()', 50) 

function clock() { 
    time=new Date() 
    document.myForm.myClock.value=time 
} 

</script> 
</form>