私のページの投票にFacebookのようなボタンを使いたかったのです。残念なことに、 'Like'をクリックすると、私は3つのリクエストを1つではなく関数に渡します。 ?これを防止するための方法は、サンプルコードがあります:FB edge.createイベントが複数回出されたとき
FB.Event.subscribe('edge.create', function(href, widget) {
console.log(href, widget);
});
マイコード:
FB.Event.subscribe('edge.create', function(href, widget) {
$.ajax({
type: "POST",
url: "/votes/register",
data: "href="+href,
dataType: 'json',
success: function(data){
$(".list-submissions").html(data["html"])
}
});
return false;
});
それとも私はジャンゴを使用して、関数の側からこれをブロックすることができますか?ここに私の機能コードです:
def register_vote(request):
ip = request.META['REMOTE_ADDR']
url = request.POST.get("href", "")
id = os.path.basename(url)
try:
vote = Vote.objects.filter(ip=ip, id=id)
except:
vote = None
if not vote:
vote = Vote(ip=ip, uid=id)
vote.save()
html = render_finalists(request)
ajax = simplejson.dumps({
"html": html
}, cls=LazyEncoder)
return HttpResponse(ajax, mimetype='application/javascript')