2010-12-09 12 views
1

Ok, ich werde ehrlich sein, ich habe eine gute Menge Erfahrung mit PHP/MySQL, ich habe gerade angefangen zu lernen, jQuery und ich habe sehr wenig getan, aber einige mit Ajax . Die Begriffe Ajax/Jquery zu verwenden, ist für mich etwas verwirrend. Jedenfalls, wie der Titel andeutet, habe ich eine Website mit 5 Gegenständen, und ich möchte, dass sie sich bewegen (das heißt, wenn ein neuerer Eintrag eingegeben wird, entferne den letzten Gegenstand und setze den neuen ein), sind es 5 von den meisten Letzte Einträge in der Datenbanktabelle, jetzt habe ich jQuery als Test codiert, so dass der letzte ausblendet, das Ganze wird nach unten verschoben, macht Platz an der Spitze und blendet einen neuen ein. Es ist jedoch ein Test und hat 0 Interaktion mit der Datenbank, die, die eingeblendet wird, ist nur in einem versteckten div. So ist der jQuery-Teil erledigt.Moving Frontpage (Fluchvogel oder Viereck)

So bin ich mir nicht sicher, wie das geht, dachte ich vielleicht haben Ajax eine Website von der Seite, die diese 5 Elemente im Rohformat hat, überprüfen, und wenn sie dann ändern, um zu aktualisieren?

Nicht auf der Suche nach einem "PLZ Code 4 mich" Antwort, nur das Konzept, wie es funktionieren würde, oder einige Links, um richtig loszulegen.

bearbeiten - Auch die 5 Elemente sind rangiert, also wenn ich auf Element 3 klicke, brauche ich es, um über Element 2 refreshless zu bewegen, so dass dies ein ganz anderes Problem verursacht, nehme ich an.

+0

irgendeine Art von Bumping-System? –

Antwort

0

Ihre AJAX-Lösung klingt vernünftig, aber ...

Wie wird häufig die Datenbank aktualisiert werden? Wenn Sie alle paar Minuten Updates erhalten, dann funktioniert das gut, wenn Sie 100 Updates pro Sekunde bekommen, dann können die Benutzer seltsame Ergebnisse bekommen.

Wie oft planen Sie die Abfrage des Servers und wie viele Benutzer?

Nur ein paar Gedanken.

+0

Nun, die ideale wäre so viele Benutzer wie Facebook? : P. –

0

Die Grundidee ist, dass jQuery (das Javascript-Toolkit) eine Ajax-Anfrage (das könnte mit rohen Javascript gemacht werden, aber jQuery macht den Prozess SO viel einfacher) zu einem Skript (PHP, in Ihrem Fall) Abfrage der Datenbank und Rückgabe der Daten.

Ihr Basic-Skript (für den Anruf und Antwort) würde wahrscheinlich etwas in dieser Richtung sein:

ajax-handler.php

<?php 
    if(isset($_POST['get-store-updates'])){ 
     $output = ''; 
     $sql = "SELECT ... LIMIT 5"; // Select the five store items 
     $result = mysql_query($sql) or die(mysql_error()); 

     while($row = mysql_fetch_assoc($result)){ 
      $output .= // construct the HTML for your store items 
     } 

     echo $output; 
    } 
?> 

index.php

function get_items(){ 
    $.ajax({ 
     url: 'ajax-handler.php', 
     type: 'post', 
     data: 'get-store-updates=true', 
     success: function(myItems){ 
      $('#item-wrapper').html(myItems); 
     } 
    }); 
} 

In diesem Beispiel etwas tri ffnet die JavaScript-Funktion get_items(), die den Ajax-Aufruf auslöst (eine POST-Anfrage an ajax-handler.php mit den Parametern "get-store-updates = true", die das "if (isset ($ _ POST ['get- store-updates '])) "Ich habe PHP eingefügt. Wenn die Ajax-Anfrage erfolgreich ist (dh sie hat den Aufruf ausgeführt, nicht unbedingt, dass das PHP-Skript funktioniert hat), wird die Ausgabe des PHP-Skripts zur Javascript-Variable "myItems". Mit unserer PHP-Antwort, die in einer Javascript-Variable gespeichert ist, können wir den Inhalt der Elementliste (in diesem Fall # item-wrapper) mit einer beliebigen Anzahl von jQuery-Methoden ersetzen.

Natürlich, wenn Sie dies für eine große Gemeinschaft planen, sollten Sie Vorbereitungen für eine hohe Serverlast treffen. Wenn Sie wirklich Lust haben wollen, schauen Sie sich die Push-Methoden an.