模仿人人网 拖动滚动条到页面底端时加载新消息[AJAX、jQuery、web service]

来源:互联网 发布:数据库里可不可以用int 编辑:程序博客网 时间:2024/05/16 19:12

模仿人人网 拖动滚动条到页面底端时加载新消息[AJAX、jQuery、web service]

当页面滚动到低端时,执行ajax方法从web service获取更多微博,并加载到页面上

GetMicroblogs.js

复制代码
/// <reference path="../Scripts/jquery-1.4.1-vsdoc.js" />$(function () {    var i = 0;    $(window).bind("scroll", function (event) {        //滚动条到网页头部的 高度,兼容ie,ff,chrome        var top = document.documentElement.scrollTop + document.body.scrollTop; //??????        //网页的高度        var textheight = $(document).height();        // 网页高度-top-当前窗口高度         if (textheight - top - $(window).height() <= 100) {            if (i >= 25) {                return; //控制最大只能加载到100条            }            $('#divContent').css("height", $(document).height() + 400);            i++;            //可以根据实际情况,获取ajax动态数据加载到 divContent中            var dataParas = '{ pageIdx:"' + i.toString() + '"}'; // 这里要直接使用JOSN作为webService参数            $.ajax({                type: "POST",                dataType: "json",                contentType: "application/json",                data: dataParas,                url: "../MicroBlog.asmx/GetMicroBlogs",                success: function (data) {                    //将获取到的JSON对象数组转换为js对象                    var blogs = eval("MicroBlogs = " + data.d);                    //遍历微博对象数组,追加到divContent中                    for (var j = 0; j < 4; j++) {                        $('<div>' + blogs.MicroBlogs[j].Sender + '</div>').appendTo($('#divContent'));                    }                },                error: function () {                    alert("error occured!");                }            });        }    });});//页面加载时引发$(document).ready(doc_ready);//页面加载时加载前4条微博function doc_ready() {    var jsonParas = '{ pageIdx:"0"}';    $.ajax({        type: "POST",        dataType: "json",        contentType: "application/json",        data: jsonParas,        url: "../MicroBlog.asmx/GetMicroBlogs",        success: function (data) {            var blogs = eval("MicroBlogs = " + data.d);            for (var j = 0; j < 4; j++) {                $('<div>' + blogs.MicroBlogs[j].Sender + '</div>').appendTo($('#divContent'));            }        },        error: ajax_error()    });}function ajax_error() {    //alert("The call to webService is failed!!!!!");}
复制代码

前台页面:

ScrollLoadMicroBlog.aspx  :
复制代码
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/Site.Master" AutoEventWireup="true" CodeBehind="ScrollLoadMicroBlog.aspx.cs" Inherits="MicroBlogs_WEB.拉动滚动条加载微博.ScrollLoadMicroBlog" %><asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">    <script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script>    <script src="getMicroBlogs.js" type="text/javascript"></script>        <style>    #divContent div{ font-size:100px; background:#ccc;margin-top:5px}    </style></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"><%-- 显示微博的区域 --%>        <div style="height: 600px;" id="divContent">            </div></asp:Content>
复制代码

使用ajax方法从web service获得json数据:

MicroBlog.asmx :
复制代码
 1 using System.Runtime.Serialization; 2 using System.Web.Script.Serialization; 3  4 namespace microblog_WEB 5 { 6     /// <summary> 7     /// MicroBlog 的摘要说明 8     /// </summary> 9     [WebService(Namespace = "http://tempuri.org/")]10     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]11     [System.ComponentModel.ToolboxItem(false)]12     [System.Web.Script.Services.ScriptService]13     public class MicroBlog : System.Web.Services.WebService14     {15 16         [WebMethod]17         public string HelloWorld ()18         {19             return "Hello World";20         }21 22         [WebMethod]23         public string GetMicroBlogs ( uint pageIdx )24         {25             string jsonStr = string.Empty;26             for (uint i = pageIdx * 4; i < (pageIdx * 4) + 4; i++)27             {28                 MicroBlogModel blg = new MicroBlogModel();29                 blg.Sender = "sender" + i;30                 blg.Content = "content:" + i;31                 jsonStr += (blg.ToJson()+",");32             }33             return ("{ \"MicroBlogs\": [" + jsonStr.Remove(jsonStr.Length - 1) + "  ]  }");34         }35 36     }37 38     [Serializable]39     public class MicroBlogModel40     {41         private string _sender = string.Empty;42 43         public string Sender44         {45             get { return _sender; }46             set { _sender = value; }47         }48         private uint _senderID = 0;49 50         public uint SenderID51         {52             get { return _senderID; }53             set { _senderID = value; }54         }55         private string _content = string.Empty;56 57         public string Content58         {59             get { return _content; }60             set { _content = value; }61         }62         private DateTime sendtime;63 64         public DateTime Sendtime65         {66             get { return sendtime; }67             set { sendtime = value; }68         }69 70         public string ToJson ()71         {72             JavaScriptSerializer jsSerializer = new JavaScriptSerializer();73             return jsSerializer.Serialize(this);74         }75 76     }77 }
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 羊毛外套缩水了怎么办 淘宝用红包退款怎么办 快递不能改地址怎么办 超市买到假货怎么办 天猫不小心删除了怎么办 生活费都没了怎么办 天猫超市发错货怎么办 双11退货红包怎么办 充电线不在充电怎么办 淘宝直播不清晰怎么办 手机扫码不清楚怎么办 安卓软件删不掉怎么办 顾客恶意差评怎么办 淘宝不能看视频怎么办 天猫精灵打不开怎么办 手机淘宝卡死了怎么办 为什么电视盒子打不开怎么办 天猫买了降价了怎么办 试用报告未提交怎么办 试用中心拉黑怎么办 淘宝赠品破了怎么办 淘宝卖家不给赠品怎么办 淘宝赠品有瑕疵怎么办 淘宝赠品不发货怎么办 移动电视没信号怎么办 网络电视死机了怎么办 电视接收网络信号不好怎么办 tcl电视待机打不开怎么办 宽带电视看不了怎么办 电视总是闪退怎么办 电视出现系统更新怎么办 电视一直在更新怎么办 电视更新死机了怎么办 法院打电话不接怎么办 内向不敢辞职怎么办呀 生气后睡不着觉怎么办 被气得睡不着怎么办 一生气就睡不着怎么办 手机接电话声音小怎么办 发微信老公不回怎么办 欠钱没有欠条怎么办