欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jquery+ajax+C#實(shí)現(xiàn)無刷新操作數(shù)據(jù)庫數(shù)據(jù)的簡單實(shí)例

 更新時(shí)間:2014年02月08日 09:45:09   投稿:jingxian  
本篇文章主要是對jquery+ajax+C#實(shí)現(xiàn)無刷新操作數(shù)據(jù)庫數(shù)據(jù)的簡單實(shí)例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助

我們知道同步執(zhí)行和異步執(zhí)行的區(qū)別,為了更好的提高用戶的體驗(yàn),我們都會(huì)采用異步方式去處理一些問題,畢竟單線程的同步可能回造成卡死等現(xiàn)象,很不友好,所以可以使用ajax來完成用戶的體驗(yàn),現(xiàn)在我們就來說說如何使用jquery的ajax來實(shí)現(xiàn)無刷新的獲取內(nèi)容

我們只是單方面的獲取內(nèi)容,分頁等就不考慮了,后期會(huì)講到無刷新的分頁

頁面中我們放置一個(gè)Div容器用來存放返回的內(nèi)容

<div id="comment">
<img src="images/Wait.gif" title="數(shù)據(jù)載入中..." /></div>

注:wait.gif是一個(gè)類似進(jìn)度條的效果,當(dāng)沒有加載的內(nèi)容沒有加載出來的時(shí)候,就顯示這個(gè)效果,這樣就能提高用戶的體驗(yàn)度。然后最重要的就是jquery這塊了,需要用到ajax來完成

代碼:

復(fù)制代碼 代碼如下:

function getInfo()
{
   $.ajax({
    url:"doAction.aspx?fig=reader&id=1&page=1",
    type:"POST",
    success:function(Data)
    {
      $("#comment").html(Data);
//通過arguments[0]接收也可以 $("#comment").html(arguments[0]); 
    },
    error:function()
    {
alert("程序出錯(cuò)");
    }
   })
}

url:指向的url

type:提交的方式,可以為POST或者GET

success:通信成功后執(zhí)行的函數(shù)

error:通信失敗后執(zhí)行的函數(shù)

beforeSend:通信前執(zhí)行的韓碩

complete:通信完成后執(zhí)行的函數(shù)

在這里采用了POST提交的方式,比Get更安全些,所以也可以替換成下面的方式

復(fù)制代碼 代碼如下:

function getInfo1() {
    $.post("doAction.aspx", { fig: "reader", id:"1", page:"1" }, function () {
 $("#comment").html(arguments[0]);
    })
}

可以看到參數(shù)的寫法不同,采用POST提交方式,第一種方式和第二種方式區(qū)別在于:

首先,接收參數(shù)的時(shí)候,在doAction.aspx頁面里第一種方式使用Request.QueryString["fig"]接收,第二種方式使用的是Request.Form["fig"]

其次,第一種方式當(dāng)通信失敗后,可以友好的返回錯(cuò)誤信息,第二種方式暫時(shí)沒發(fā)現(xiàn)可以返回

然后在doAction.aspx頁面中,只要進(jìn)行相應(yīng)的處理就可以了

復(fù)制代碼 代碼如下:

if (Request.Form["fig"] != null && Request.Form["fig"].ToString() == "reader")
 {
     ajax_getcomment("1",1);
 }
//從數(shù)據(jù)庫中獲取數(shù)據(jù)
    private void ajax_getcomment(string id, int page)
    {

 using (CommentBO cm = new CommentBO(id, page - 1))
 {
     Response.Write(cm.getCommentContent());
 }
    }


同樣如果才用Get的提交方式,使用$.get("",{},function(){})也是一樣的..

另外一種加載內(nèi)容的方式可以使load()方法,關(guān)于用法可以查閱api,簡單說說上面的用load如何加載

代碼

復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="js/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
 $(function () {
     $("#btnLoad").click(function () {
  $("#content").load("doAction.aspx",{fig:"reader",id:"1",page:"1"},function (responseText, textStatus, XMLHttpRequest) {
      alert(responseText);
  });
     })
 })
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <input type="button" id="btnLoad" value="加載load" />
    <div id="content">

    </div>
    </form>
</body>
</html>


這樣就把內(nèi)容加載到頁面里了,有一點(diǎn)問題就是發(fā)現(xiàn)頁面中返回的內(nèi)容和alert彈出的有些不一樣,alert彈出的返回html標(biāo)簽,而頁面沒有,那是因?yàn)轫撁嬉呀?jīng)解析了html代碼

其他的添加,修改,刪除等基本操作也是如此,大同小異,只是在doaction.aspx頁面中調(diào)用不同的方法而已,下面把主要的jquery代碼貼出來看看

復(fù)制代碼 代碼如下:

function addpinlun()
{
   var $CommentParentID    =arguments[0];
 var $CommentUser =$('#CommentUser').val();
 var $CommentText =$('#CommentText').val();
 var $CommentValidate    =$('#CommentValidate').val();
 
if($.trim($CommentUser)=='')
{
  alert("請?zhí)顚戧欠Q!");
  $("#CommentUser").focus();
  return false;
}
if($.trim($CommentText)=='')
{
  alert("請?zhí)顚懺u論內(nèi)容!");
  $("#CommentText").focus();
  return false;
}
if($.trim($CommentValidate)=='')
{
   alert("請輸入驗(yàn)證碼");
   $("#CommentValidate").focus();
   return false;
}
StopButton('CommentSubmit',10);
//     驗(yàn)證完成可以ajax添加
$.ajax({
    url: "doAction.aspx?action=add&commentparentid=" + $CommentParentID + "&commentuser=" + escape($CommentUser) + "&commenttext=" + escape($CommentText) + "&commentvalidate=" + escape($CommentValidate) + "&time=" + new Date().toString(),
    type: "GET",
    success: function (data) {
 if (arguments[0] == "ERROR") {
     alert("驗(yàn)證碼超時(shí),請重新輸入");
 }
 else {
     getInfo();
     $("#CommentText").val("");
     //驗(yàn)證成功時(shí),刷新驗(yàn)證碼圖片
     $("#CommentValidateImages").attr("src", "VerifyCode.aspx?s=" + Math.random());
     //  alert("添加成功");
     $("#alertMessgae").html(data);
 }
 $('#CommentValidate').val("");
    }
})

function StopButton()
{
    document.getElementById(arguments[0]).disabled=true;
    document.getElementById(arguments[0]).value="提交("+arguments[1]+")";
   if(arguments[1]>=1)
   {
arguments[1]--;
window.setTimeout("StopButton('"+arguments[0]+"',"+arguments[1]+")",1000);
   }
   else
   {
    document.getElementById(arguments[0]).disabled=false;
    document.getElementById(arguments[0]).value="提交";
   }
}


DoAction.aspx頁面的部分代碼頁貼出來
復(fù)制代碼 代碼如下:

if(Request.QueryString["action"]!=null && Request.QueryString["action"]=="add")
 {
     if (Session["VerifyCode"].ToString().ToLower() != commentvalidate.ToLower())
     {
  Response.Write("ERROR");
     }
     else
     {
  DBQuery.ExecuteScalar("insert into comment(commentparentid,commentuser,commenttext,commentreply,commentip) values('" + commentparentid + "','" + commentuser + "','" + Server.HtmlEncode(commenttext) + "','','" + Request.ServerVariables["REMOTE_ADDR"] + "')");
  Response.Write("<script>alert('評論發(fā)表成功!</script>");
     }
 }

ajax里的屬性很多,可以查看api,根據(jù)自己的需要調(diào)用不同的屬性就可以了,這里面有一點(diǎn)需要注意的是

如果判斷用戶名是否有重復(fù)的時(shí)候,要使用$.getIfModified而不能是用$.get,大家可以測試一下

如果使用$.get你第一次注冊了一個(gè)名字,你不要做其他的操作,你再在文本框里面輸入相同的名稱,那個(gè)時(shí)侯還能注冊的,這點(diǎn)要注意。

相關(guān)文章

  • jQuery 解析xml文件

    jQuery 解析xml文件

    jQuery 解析xml文件實(shí)現(xiàn)腳本代碼,用到了jquery如何解析xml文件,和大家分享一下
    2009-08-08
  • jQuery表單元素選擇器代碼實(shí)例

    jQuery表單元素選擇器代碼實(shí)例

    這篇文章主要為大家詳細(xì)介紹了jQuery表單元素選擇器代碼實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • jquery ui resizable bug解決方法

    jquery ui resizable bug解決方法

    其實(shí)這個(gè)也不算是 resizable 的BUG,但從官網(wǎng)下載下來的確實(shí)存在問題
    2010-10-10
  • JQuery AJAX提交中文亂碼的解決方案

    JQuery AJAX提交中文亂碼的解決方案

    JQuery是一個(gè)非常優(yōu)秀的框架,在特定場合下使用JQuery提交數(shù)據(jù),相當(dāng)?shù)姆奖憧旖荨?但是,在處理一個(gè)GB2312編碼的網(wǎng)站AJAX提交時(shí),中文數(shù)據(jù)卻成了亂碼。
    2010-07-07
  • jQuery實(shí)現(xiàn)仿美橙互聯(lián)兩級(jí)導(dǎo)航菜單的方法

    jQuery實(shí)現(xiàn)仿美橙互聯(lián)兩級(jí)導(dǎo)航菜單的方法

    這篇文章主要介紹了jQuery實(shí)現(xiàn)仿美橙互聯(lián)兩級(jí)導(dǎo)航菜單的方法,實(shí)例分析了jQuery操作css及setTimeout等實(shí)現(xiàn)導(dǎo)航菜單的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 利用jquery制作滾動(dòng)到指定位置觸發(fā)動(dòng)畫

    利用jquery制作滾動(dòng)到指定位置觸發(fā)動(dòng)畫

    本文只是一個(gè)簡單的演示程序,大家可以根據(jù)自己的需求進(jìn)行修改,以達(dá)到自己想要實(shí)現(xiàn)的功能。
    2016-03-03
  • 利用jquery去掉時(shí)光軸頭尾部線條的方法實(shí)例

    利用jquery去掉時(shí)光軸頭尾部線條的方法實(shí)例

    這篇文章主要給大家介紹了利用jquery實(shí)現(xiàn)去掉時(shí)光軸頭尾部線條的方法,文中給出了詳細(xì)的實(shí)例代碼供大家參考學(xué)習(xí),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • jQuery 動(dòng)態(tài)云標(biāo)簽插件

    jQuery 動(dòng)態(tài)云標(biāo)簽插件

    這里推薦給大家一款jquery動(dòng)態(tài)云標(biāo)簽的插件,非常的炫,在指定塊級(jí)元素內(nèi)動(dòng)態(tài)生成a標(biāo)簽,a標(biāo)簽的高度、寬度、位置、層數(shù)、背景顏色隨機(jī)可控,a標(biāo)簽漸隱顯示和漸隱消失,可改變初始化的透明度,鼠標(biāo)懸浮停止動(dòng)畫且透明度最大,層數(shù)最高,鼠標(biāo)離開,恢復(fù)之前狀態(tài)
    2014-11-11
  • jQuery-onload讓第一次頁面加載時(shí)圖片是淡入方式顯示

    jQuery-onload讓第一次頁面加載時(shí)圖片是淡入方式顯示

    第一次打開一個(gè)頁面時(shí),讓加載好的圖片先隱藏,然后再執(zhí)行動(dòng)畫fadeIn,這里的load事件:當(dāng)所有子元素已經(jīng)被完全加載完成時(shí),load事件被發(fā)送到這個(gè)元素
    2012-05-05
  • jquery 鍵盤事件 keypress() keydown() keyup()用法總結(jié)

    jquery 鍵盤事件 keypress() keydown() keyup()用法總結(jié)

    在本篇文章里小編給各位整理的是關(guān)于jquery 鍵盤事件 keypress() keydown() keyup()用法總結(jié)以及相關(guān)實(shí)例,需要的朋友們學(xué)習(xí)下。
    2019-10-10

最新評論