Maison >interface Web >js tutoriel >jQuery combiné avec AJAX pour charger les données du serveur lorsque la page scrolls_jquery
Introduction
Le texte montrera comment télécharger des données depuis le serveur lors du défilement de la barre de défilement. L'utilisation de la technologie AJAX pour charger des données à partir du serveur peut contribuer à améliorer les performances de n'importe quelle application Web, car lorsque la page est ouverte, un seul écran de données est chargé à partir du serveur. Lorsque davantage de données sont nécessaires, la barre de défilement peut défiler avec le bouton. utilisateur. Ensuite, chargez-le depuis le côté serveur.
Contexte
C'est Facebook qui m'a incité à écrire le code qui charge les données du serveur lorsque la barre de défilement défile. En parcourant Facebook, j'ai été surpris de constater qu'au fur et à mesure que je faisais défiler, de nouvelles données du serveur commençaient à être insérées dans les données existantes. Ensuite, concernant l'utilisation de C# pour implémenter la même fonction, j'ai recherché des informations pertinentes sur Internet, mais je n'ai trouvé aucun article ou blog sur l'utilisation de C# pour implémenter cette fonction. Bien sûr, il existe quelques articles sur les implémentations Java et PHP. Après avoir lu attentivement ces articles, j'ai commencé à écrire du code en c#. Puisque ma version C# fonctionnait avec succès, j'ai pensé la partager, d'où ce message.
Code
Avec seulement quelques lignes de code, nous pouvons charger le scroll. Lors du défilement de la page, une WebMethod sera appelée par le client et renverra le contenu à insérer dans le client. En même temps, sur le client, l'événement scroll sera lié à une fonction client (document.ready). la fonction charge les données du serveur. Parlons en détail de ces deux méthodes côté serveur et côté client ci-dessous.
Méthode côté serveur : Cette méthode est utilisée pour obtenir des données à partir d'une base de données ou d'autres sources de données, et générer une chaîne HTML selon le format du contrôle dans lequel les données doivent être insérées. Ici, je viens d'ajouter un message avec un numéro de séquence.
[WebMéthode]
" 計數器 " " strComment "
";$(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)
success: function (msg) { $("#wrapperDiv").append(msg.d); $contentLoadTriggered = false; }
我貼了幾張樣圖:
輸出