Estoy tratando de hacer que la votación vote algo similar para apilar el voto desbordado vote y vote hacia abajo, ahora lo hice funcionar con (but-it-works enfoque) y, sin embargo, algo no se siente bien, con suerte alguien sugerirá algunos ajustes útiles. Aquí está mi código jQuery:cómo hacer un sistema de votación como stackoverflow usando ajax/jquery/php (eficiente)
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();
}
});
});
});
aquí es mi 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 es igual a un número. Ahora, cuando hago clic en el botón de voto arriba, aumenta el valor de fuerte y si hago clic en votar hacia abajo, lo disminuye.
Estoy trabajando con CI (codeigniter) no nativo php.
Cómo mido el rendimiento de esto, no hace tanto tiempo que votar o votar tomaba más de dos segundos, agregué el LÍMITE 1 a mi consulta y ahora funciona un poco más rápido, creo que debería funcionar mucho más rápido . Gracias por sus comentarios
Y sí lo siento por ommiting esto aquí son mi voto y votar en contra de funciones:
$this->db->query("UPDATE $table SET $what_field = ($what_field + 1) $wheremore WHERE $what_id = '$value' LIMIT 1");
y voto ABAJO:
$this->db->query("UPDATE $table SET $what_field = ($what_field - 1) $wheremore WHERE $what_id = '$value' LIMIT 1");
ACTUALIZACIÓN Creo que la por lo que las cosas son generalmente lentas es debido a mi inexperiencia con jquery, creo que mi tabla es okey
ACTUALIZACIÓN II
Acabo de eliminar la parte php de la función jquery ajax, solo para incrementar el número en 1 y todavía funciona realmente lento.
ACTUALIZACIÓN III
Cuando funciono consulta con phpmyadmin se ejecuta desde la línea de 0,3 segundos hasta 1,77 segundos varía por alguna razón.
¿Qué motor de base de datos está utilizando? –
No olvide el 'Quién' en la votación. –
@Juha Estoy usando Mysql, @ Martijn - Me preocuparé por esas cosas más tarde Estoy tratando de mejorar el rendimiento –