テンプレートには、次のコードがあります。
<script>
var url="/mypjt/my_timer"
$.post(url, paramarr,
function callbackHandler(dict)
{
alert('got response back');
if (dict.flag == 2)
{
alert('1');
$.jGrowl("Data could not be saved");
}
else if(dict.ret_status == 1)
{
alert('2');
$.jGrowl("Data saved successfully");
window.location = "/mypjt/display/" + dict.rid;
}
},
"json"
);
</script>
ビューには、次のコードがあります。
def my_timer(request):
dict={}
try:
a = timer.objects.get(pk=1)
dict({'flag':1})
return HttpResponse(simplejson.dumps(dict), mimetype='application/javascript')
except:
dict({'flag':1})
return HttpResponse(simplejson.dumps(dict), mimetype='application/javascript')
JSONリクエストとtryブロックを作成しているため、フラグを設定した後、ページを直接返すことはできません
return render_to_response('mypjt/display.html',context_instance=RequestContext(request,{'dict': dict}))
HTMLページで再び成功するとコードをリダイレクトするため、応答を送信する代わりに?
また、例外がある場合は、JSON リクエストのみを返すことができます。
私の唯一の懸念は、クライアントとサーバー間のやり取りを最小限にすることです。