亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery結合AJAX之在頁面滾動時從服務器加載數據

2019-11-20 12:08:07
字體:
來源:轉載
供稿:網友

 簡介

文本將演示怎么在滾動滾動條時從服務器端下載數據。用AJAX技術從服務器端加載數據有助于改善任何web應用的性能表現,因為在打開頁面時,只有一屏的數據從服務器端加載了,需要更多的數據時,可以隨著用戶滾動滾動條再從服務器端加載。
背景

是Facebook促使我寫出了在滾動條滾動時再從服務器加載數據的代碼。瀏覽facebook時,我很驚訝的發現當我滾動頁面時,新的來自服務器的數據開始插入到此現存的數據中。然后,對于用c#實現同樣的功能,我在互聯網上了查找了相關信息,但沒有發現任何關于用c#實現這一功能的文章或者博客。當然,有一些Java和PHP實現的文章。我仔細的閱讀了這些文章后,開始用c#寫代碼。由于我的C#版本運行的很成功,所以我想我愿意分享它,因此我發表了這邊文章。

代碼

只需要很少的幾行代碼我們就能在滾動時完成加載。滾動頁面時,一個WebMethod將被客戶端調用,返回要插入客戶端的內容,同時,在客戶端,將把scroll事件綁定到一個客戶端函數(document.ready),這個函數實現從服務器端加載數據。下面詳細說說這兩個服務器端和客戶端方法。

服務器端方法:這個方法用來從數據庫或者其他數據源獲取數據,并根據數據要插入的控件的格式來生成HTML串。這里我只是加入了一個帶有序列號的消息。
 
[WebMethod]

復制代碼 代碼如下:
public static string  GetDataFromServer()
{
    string resp = string.Empty;
    for(int i = 0; i <= 10; i++)
    {
        resp += "<p><span>"  + counter++ +
          "</span> This content is dynamically appended " +
          "to the existing content on scrolling.</p>" ;
    }
    return resp;
}

若你要從數據庫加載數據,可以如下修改代碼:
 
[WebMethod]
復制代碼 代碼如下:

public static string GetDataFromServer()
    {
        DataSet ds = new DataSet();
 
        // Set value of connection string here
        string strConnectionString = ""; // Insert your connection string value here
        SqlConnection con = new SqlConnection(strConnectionString);
 
        // Write the select command value as first parameter
        SqlCommand command = new SqlCommand("SELECT * FROM Person", con);
        SqlDataAdapter adp = new SqlDataAdapter(command);
int retVal = adp.Fill(ds);
 
        string resp = string.Empty;
for (int i = 1; i <= ds.Tables[0].Rows.Count; i++)
        {
            string strComment = string.Empty;
if (ds.Tables != null)
            {
if (ds.Tables[0] != null)
                {
if (ds.Tables[0].Rows.Count > 0)
                    {
if (ds.Tables[0].Rows.Count >= i - 1)
                        {
if (ds.Tables[0].Rows[i - 1][0] != DBNull.Value)
                            {
                                strComment = ds.Tables[0].Rows[i - 1][0].ToString();
                            }
                        }
                    }
                }
            }
            resp += "<p><span>" + counter++ + "</span> " + strComment + "</p>";
        }
return resp;
    }

客戶端方法:在客戶端,我使用了document.ready方法,并且把div的scroll事件綁定到了該方法上。我使用了兩個div元素,mainDiv和wrapperDiv,并且給mainDiv注冊了scroll事件,把動態數據插入到wrapperDiv中。

$(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)

這個條件將判斷滾動條是否已經到達了底部,當它已經移動到了底部,動態數據將從服務器端加載,并且插入wrapperDiv。把數據插入目標div元素的客戶端腳本將在異步調用返回成功時執行。
 

success: function (msg){$("#wrapperDiv").append(msg.d);$contentLoadTriggered = false;}

這里,你將注意到只有在用戶移動滾動到了底部時,請求才會送到服務器端。

我粘貼了幾個樣圖:
Output

2015630105226301.jpg (582×356)

2015630105323951.jpg (590×352)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av在线免费观看| 欧美最猛性xxxxx(亚洲精品)| 亚洲成人黄色在线| 一本色道久久88综合日韩精品| 国产精品美女免费视频| 国产丝袜高跟一区| 欧美激情一二三| 国产精品久久久久高潮| 亚洲国产精品网站| 538国产精品一区二区在线| 久久久国产一区二区三区| 亚洲国产精彩中文乱码av在线播放| 久久久久久久国产精品| 成人亚洲欧美一区二区三区| 久久久www成人免费精品张筱雨| 91网站在线免费观看| 性金发美女69hd大尺寸| 亚洲欧美中文字幕| 国产精品jizz在线观看麻豆| 精品日本高清在线播放| 国产中文欧美精品| 久久国产精品久久久久久久久久| 成人h视频在线观看播放| 日本一区二区三区在线播放| 一区二区欧美日韩视频| 欧日韩不卡在线视频| 亚洲国产欧美日韩精品| 亚洲第一中文字幕在线观看| 91欧美精品午夜性色福利在线| 国产精品日韩av| 久久精品国产精品亚洲| 久久精品久久久久| 日韩中文字幕在线播放| xvideos成人免费中文版| 亚洲激情视频在线| 精品国产老师黑色丝袜高跟鞋| 欧美性极品xxxx娇小| 国产美女久久久| 欧美成年人视频网站欧美| 91最新在线免费观看| 亚洲一区二区久久久久久久| 国产精品久久在线观看| 中国人与牲禽动交精品| 8x拔播拔播x8国产精品| 久久久久久久亚洲精品| 久久99精品国产99久久6尤物| 欧美亚洲一区在线| 福利精品视频在线| 久久精品国产亚洲7777| 久久亚洲成人精品| 一个色综合导航| 福利视频一区二区| 日韩av中文字幕在线| 色噜噜亚洲精品中文字幕| 久久夜色精品亚洲噜噜国产mv| 日韩高清免费观看| 中文字幕日韩在线播放| 欧美日韩激情小视频| 免费91麻豆精品国产自产在线观看| 欧美日韩国产一区二区三区| 亚洲午夜av电影| 黑人巨大精品欧美一区二区三区| 国产精品久久久久福利| 日韩理论片久久| 亚洲午夜精品久久久久久久久久久久| 日韩在线视频免费观看| 欧美亚洲视频在线观看| 中文字幕日韩欧美| 欧美国产精品人人做人人爱| 亚洲综合中文字幕在线观看| 亚洲福利在线看| 久久久久久91| 538国产精品一区二区免费视频| 欧美成人精品一区| 欧美激情视频在线| 欧美成人sm免费视频| 国语自产精品视频在线看抢先版图片| 中文字幕av一区二区| 亚洲欧洲一区二区三区久久| 国产成人精品最新| 日韩精品免费在线视频| 亚洲性生活视频在线观看| 欧美成人国产va精品日本一级| 国产成人精品a视频一区www| 久久精品久久久久久国产 免费| 久久精品国产99国产精品澳门| 91久久国产精品91久久性色| 一本一本久久a久久精品综合小说| 国内精品久久久久| 日韩av一区二区在线观看| 欧美成人三级视频网站| 欧美日韩在线观看视频| 久久精品国产亚洲| 国产精品久久久久久久美男| 成人观看高清在线观看免费| 丰满岳妇乱一区二区三区| 国产精品免费久久久久影院| 欧美成人黑人xx视频免费观看| 成人黄色免费在线观看| 精品成人乱色一区二区| 成人久久久久久| 97不卡在线视频| 久久精品国产久精国产一老狼| 欧美日韩在线影院| 欧美老女人xx| 揄拍成人国产精品视频| 亚洲激情视频在线播放| 色综合久久88| 欧美日韩国产在线播放| 久久99国产精品久久久久久久久| 亚洲色图偷窥自拍| 亚洲mm色国产网站| 精品视频中文字幕| 精品av在线播放| 综合激情国产一区| 这里只有精品在线观看| 亚洲成人激情小说| 日韩视频中文字幕| 国产精品视频白浆免费视频| 国产成人啪精品视频免费网| 久久这里只有精品99| 欧美日韩日本国产| 4p变态网欧美系列| 亚洲黄一区二区| www国产精品com| 久久中文精品视频| 国产欧美日韩中文字幕| 国产91久久婷婷一区二区| 精品动漫一区二区三区| 在线观看成人黄色| 久久久久久久激情视频| 91在线高清免费观看| 精品久久久久久久久久久久| 欧美视频裸体精品| 91欧美视频网站| 国产一区二区日韩精品欧美精品| 国产视频亚洲精品| 国产精品美女视频网站| 国产综合在线视频| 亚洲va欧美va国产综合剧情| 日韩成人在线视频网站| 成人在线视频福利| 国产一区二区三区在线观看网站| 中文字幕亚洲欧美| 动漫精品一区二区| 久久天天躁夜夜躁狠狠躁2022| 日韩中文字幕在线视频播放| 538国产精品视频一区二区| 亚洲精品自拍第一页| 欧美激情手机在线视频| 91av中文字幕| 国产成人一区二| 日韩电影中文 亚洲精品乱码| 国产精品一区二区三区成人| 久久精品国产久精国产一老狼| 久久久久久久久久av| 亚洲欧洲日产国产网站| 91国产一区在线| 久久亚洲精品成人| 国产精品影片在线观看| 亚洲男人的天堂网站| 国产精品极品尤物在线观看| 亚洲视频第一页| 欧美视频免费在线观看|