Heim >Web-Frontend >js-Tutorial >jQuery kombiniert mit AJAX, um Daten vom Server zu laden, wenn die Seite scrollt_jquery
Einleitung
Der Text zeigt, wie man beim Scrollen der Bildlaufleiste Daten vom Server herunterlädt. Die Verwendung der AJAX-Technologie zum Laden von Daten vom Server kann dazu beitragen, die Leistung jeder Webanwendung zu verbessern, da beim Öffnen der Seite nur ein Bildschirm mit Daten vom Server geladen wird. Wenn mehr Daten benötigt werden, kann mit der Bildlaufleiste gescrollt werden Laden Sie es dann von der Serverseite.
Hintergrund
Es war Facebook, das mich dazu veranlasste, den Code zu schreiben, der Daten vom Server lädt, wenn die Bildlaufleiste scrollt. Beim Surfen auf Facebook war ich überrascht, dass beim Scrollen neue Daten vom Server in die vorhandenen Daten eingefügt wurden. Dann suchte ich bezüglich der Verwendung von C# zur Implementierung derselben Funktion im Internet nach relevanten Informationen, fand jedoch keine Artikel oder Blogs zur Verwendung von C# zur Implementierung dieser Funktion. Natürlich gibt es einige Artikel zu Java- und PHP-Implementierungen. Nachdem ich diese Artikel sorgfältig gelesen hatte, begann ich, Code in C# zu schreiben. Da meine C#-Version erfolgreich lief, dachte ich, ich würde sie teilen, daher dieser Beitrag.
Code
Mit nur wenigen Codezeilen können wir beim Scrollen laden. Beim Scrollen der Seite wird vom Client eine WebMethod aufgerufen, die den in den Client einzufügenden Inhalt zurückgibt. Gleichzeitig wird auf dem Client das Scroll-Ereignis an eine Client-Funktion (document.ready This) gebunden Funktion lädt Daten vom Server. Lassen Sie uns im Folgenden ausführlich über diese beiden serverseitigen und clientseitigen Methoden sprechen.
Serverseitige Methode: Diese Methode wird verwendet, um Daten aus einer Datenbank oder anderen Datenquellen abzurufen und eine HTML-Zeichenfolge entsprechend dem Format des Steuerelements zu generieren, in das die Daten eingefügt werden sollen. Hier habe ich gerade eine Nachricht mit einer Sequenznummer hinzugefügt.
[WebMethod]
$(document).ready( function() { $contentLoadTriggered = false; $("#mainDiv").scroll( function() { if($("#mainDiv").scrollTop() >= ($("#wrapperDiv").height() - $("#mainDiv").height()) && $contentLoadTriggered == false) $contentLoadTriggered == false) { $contentLoadTriggered = true; $.ajax( { type: "POST", url: "LoadOnScroll.aspx/GetDataFromServer", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", async: true, cache: false, success: function (msg) { $("#wrapperDiv").append(msg.d); $contentLoadTriggered = false; }, error: function (x, e) { alert("The call to the server side failed. " + x.responseText); } } ); } } ); } );
这里,为检查滚动条是否已经移动到了底部,使用了下面的条件判断,
if($("#mainDiv").scrollTop() >= ($("#wrapperDiv").height() - $("#mainDiv").height()) && $contentLoadTriggered == false)
这个条件将判断滚动条是否已经到达了底部,从服务器Il s'agit d'un document wrapperDiv.时执行。
success: function (msg) { $("#wrapperDiv").append(msg.d); $contentLoadTriggered = false; }
这里,你将注意到只有在用户移动滚动到了底部时,请求才会送到服务器端。
我粘贴了几个样图:
Sortie