wie man ein Abstimmungssystem wie stackoverflow mit ajax / jquery / php (effizient) erstellt

8

Ich versuche, Post-Voting etwas ähnlich zu Stack-Überlauf Abstimmung machen und abstimmen, jetzt habe ich es mit arbeiten (but-it-works Ansatz) und doch etwas fühlt sich nicht richtig, hoffentlich wird jemand einige vorschlagen nützliche Verbesserungen. Hier ist mein jquery Code:

%Vor%

Hier ist mein HTML:

%Vor%

$ row_q- & gt; post_vote ist gleich einer Zahl. Wenn ich jetzt auf die Schaltfläche zum Abstimmen nach oben klicke, wird der Wert von strong erhöht, und wenn ich auf Abstimmen klicke, wird das verringert.

Ich arbeite mit CI (Codeigniter) nicht nativen PHP.

Wie kann ich die Leistung messen? Vor nicht allzu langer Zeit dauerte es mehr als zwei Sekunden, um die Abstimmung durchzuführen. Ich habe LIMIT 1 zu meiner Abfrage hinzugefügt und jetzt funktioniert es etwas schneller. Ich denke, das sollte viel schneller laufen. Vielen Dank für Ihre Kommentare

Und es tut mir leid, dass ich hier meine Abstimmungs- und Abstimmungsfunktionen eingestellt habe:

%Vor%

UND ABSTIMMUNG UNTEN:

%Vor%

AKTUALISIEREN Ich denke, der Grund, warum die Dinge im Allgemeinen langsam sind, ist wegen meiner Unerfahrenheit mit jQuery, ich denke, mein Tisch ist okey

UPDATE II

Ich habe gerade den php-Teil aus der jquery-ajax-Funktion entfernt, nur um die Zahl um 1 zu erhöhen, und sie arbeitet immer noch sehr langsam.

UPDATE III

Wenn ich eine Abfrage mit phpmyadmin führe, läuft sie im Bereich von 0.3 Sekunden bis 1.77 Sekunden und variiert aus irgendeinem Grund.

    
Gandalf StormCrow 18.01.2010, 21:36
quelle

3 Antworten

6
%Vor%

Sie sollten keine Strings / Varchars als Bezeichner verwenden. Es ist unnatürlich. Verwenden Sie Zahlen / Ganzzahlen.

%Vor%

Ja, dies hat Einfluss auf die DB-Performance, insbesondere wenn die rowcount high wird.

    
BalusC 18.01.2010 23:14
quelle
1

Ihre Datenbanktabelle $table sollte einen Index für $what_id haben. Normalerweise wäre das der Primärschlüssel, aber da das Hinzufügen von LIMIT 1 irgendetwas geändert hat, ist dies wahrscheinlich nicht der Fall.

    
Wim 18.01.2010 21:44
quelle
0

Wie sieht Ihre Datenbank aus? Stellen Sie sicher, dass das Feld $what_id richtig indiziert ist, vorzugsweise sollte es der Primärschlüssel sein, falls möglich.

    
Juha Syrjälä 18.01.2010 21:44
quelle