Я пытаюсь сделать пост-голосование чем-то похожим на переполнение стека, голосование вверх и голосование, теперь я заставил его работать (подход «все работает»), и все же что-то не так, надеюсь, кто-то предложит некоторые полезные твики. Вот мой код jquery:
var x = $("strong.votes_balance").text();
$("input.vote_down").click(function(){
$.ajax({
type: "POST",
url: "http://localhost/questions/vote_down/4",
success: function()
{
$("strong.votes_balance").html((parseInt(x) - parseInt(1)));
$("input[type=button]").hide();
$(".thumbsup_hide").show();
}
});
});
$("input.vote_up").click(function(){
$.ajax({
type: "POST",
url: "http://localhost/questions/vote_up/4",
success: function()
{
$("input[type=button]").hide();
$("strong.votes_balance").html((parseInt(x) + parseInt(1)));
$(".thumbsup_hide").show();
}
});
});
});
Вот мой HTML:
<div class="thumbsup thumbsup_template_up-down" id="thumbsup_49">
<form method="post" id="voting_form">
<input type="hidden" value="49" name="thumbsup_id"/>
<span class="thumbsup_hide">Result:</span>
<strong class="votes_balance"><?=$row_q->post_vote?></strong>
<input type="button" title="Good Comment!" value="+1" name="thumbsup_rating" class="vote_up"/>
<input type="button" title="Bad Comment!" value="-1" name="thumbsup_rating" class="vote_down"/>
</form>
</div>
$ row_q-> post_vote равно некоторому числу. Теперь, когда я нажимаю кнопку голосования вверх, оно увеличивает значение сильного, а если я нажимаю кнопку голосования вниз, оно уменьшает его.
Я работаю с CI (codeigniter), а не с родным php.
Как измерить производительность этого, не так давно на голосование вверх или вниз потребовалось более двух секунд, я добавил LIMIT 1 в свой запрос, и теперь он работает несколько быстрее, я думаю, что это должно работать намного быстрее. Спасибо за ваши комментарии
И да, извините за то, что пропустил это, вот мои функции голосования и отклонения:
$this->db->query("UPDATE $table SET $what_field = ($what_field + 1) $wheremore WHERE $what_id = '$value' LIMIT 1");
И ГОЛОСОВАНИЕ ВНИЗ НИЖЕ:
$this->db->query("UPDATE $table SET $what_field = ($what_field - 1) $wheremore WHERE $what_id = '$value' LIMIT 1");
ОБНОВЛЕНИЕ Я думаю, что причина, по которой дела идут медленно, заключается в том, что я неопытен с jquery, я думаю, что мой стол окей
ОБНОВЛЕНИЕ II
Я просто удалил часть php из функции jquery ajax, просто чтобы увеличить число на 1, и он все еще работает очень медленно.
ОБНОВЛЕНИЕ III
Когда я запускаю запрос с помощью phpmyadmin, он запускается в диапазоне от 0,3 секунды до 1,77 секунды, по некоторым причинам он меняется.