最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET中AJAX 調(diào)用實(shí)例代碼

 更新時(shí)間:2012年05月03日 19:31:46   作者:  
最近在ASP.NET中做了一個(gè)AJAX調(diào)用 : Client端先從ASP.NET Server后臺(tái)取到一個(gè)頁(yè)面模板,然后在頁(yè)面初始化時(shí)再?gòu)腟erver中取一些相關(guān)數(shù)據(jù)以實(shí)現(xiàn)頁(yè)面模板的動(dòng)態(tài)顯示
1前言
最近在ASP.NET中做了一個(gè)AJAX調(diào)用 : Client端先從ASP.NET Server后臺(tái)取到一個(gè)頁(yè)面模板,然后在頁(yè)面初始化時(shí)再?gòu)腟erver中取一些相關(guān)數(shù)據(jù)以實(shí)現(xiàn)頁(yè)面模板的動(dòng)態(tài)顯示。具體實(shí)現(xiàn)為:
1) Client向 ASP.NET后臺(tái)發(fā)送HTTP GET 請(qǐng)示
2) 后臺(tái)給Client發(fā)送一個(gè)HTML模板,同時(shí)在內(nèi)存中存儲(chǔ)一個(gè)XML String (包含頁(yè)面模板動(dòng)態(tài)顯示所需的數(shù)據(jù))
3) Client在初始化頁(yè)面時(shí),發(fā)送AJAX請(qǐng)求,拿到XML String
4) 利用拿到的XML String,定制化HTMl模板,實(shí)現(xiàn)HTML頁(yè)面模板的動(dòng)態(tài)顯示。
2幾個(gè)關(guān)鍵點(diǎn)的簡(jiǎn)介與代碼示例
2.1 ASP.NET Server端
2.1.1 用C#生成XML String
用System.Xmlnamespace下的幾個(gè)類(lèi)就可以實(shí)現(xiàn)。下面是Code sample,
復(fù)制代碼 代碼如下:

ArrayList steps = new ArrayList();
String errordiscription = "Not in position";
for (int i = 0; i < 5; i++)
{
steps.Add(new Step(@"images/1.jpg", "step21 description"));
}
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
//add the root
XmlNode rootNode = doc.CreateElement("Root");
doc.AppendChild(rootNode);
//add the error description node
XmlNode errorNode = doc.CreateElement("ErrorDescription");
errorNode.AppendChild(doc.CreateTextNode(errordiscription));
rootNode.AppendChild(errorNode);
//add the steps node
XmlNode productsNode = doc.CreateElement("Steps");
rootNode.AppendChild(productsNode);
for (int i = 0; i < steps.Count; i++)
{
XmlNode productNode = doc.CreateElement("step");
XmlAttribute productAttribute = doc.CreateAttribute("description");
productAttribute.Value = ((Step)steps[i]).description;
productNode.Attributes.Append(productAttribute);
//productNode.Value = ((Step)steps[i]).imagePath;
productNode.AppendChild(doc.CreateTextNode(((Step)steps[i]).imagePath));
productsNode.AppendChild(productNode);
}
Global.Repairsteps= doc.InnerXml;

生成的XML如下:
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="UTF-8" ?>
- <Root>
<ErrorDescription>Not in position</ErrorDescription>
- <Steps>
<step description="step21 description">images/1.jpg</step>
<step description="step21 description">images/1.jpg</step>
<step description="step21 description">images/1.jpg</step>
<step description="step21 description">images/1.jpg</step>
<step description="step21 description">images/1.jpg</step>
</Steps>
</Root>

2.1.2 響應(yīng)Ajax請(qǐng)求,返回XML 流
這里就只有一點(diǎn)需要注意,加個(gè)HTML Header,聲明 Content-Type.
復(fù)制代碼 代碼如下:

Response.Clear();
Response.AddHeader("Content-Type", "text/xml");
Response.Write(Global.Repairsteps);
Response.End();

2.1.3 多個(gè)Request之間數(shù)據(jù)共享
實(shí)現(xiàn)多個(gè)Request之間數(shù)據(jù)共享的方法很簡(jiǎn)單直觀,利用一個(gè)Global對(duì)象就可以了。
復(fù)制代碼 代碼如下:

public class Global
{
/// <summary>
/// Global variable storing important stuff.
/// </summary>
static string _repairsteps;
/// <summary>
/// Get or set the static important data.
/// </summary>
public static string Repairsteps
{
get
{
return _repairsteps;
}
set
{
_repairsteps = value;
}
}
}

2.2 Client端
2.2.1 AJAX獲取 XML
復(fù)制代碼 代碼如下:

$.ajax({
type: "GET",
url: "http://localhost:3153/WebSite2/",
cache: false,
dataType: "xml",
error:function(xhr, status, errorThrown) {
alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
},
success: function(xml) {
//Here we can process the xml received via Ajax
}});

2.2.2 動(dòng)態(tài)插入HTML List 元素
比較常見(jiàn)的方法是生成html stream,然后用append或html把Stream插入到DOM里面去。這樣做有一個(gè)問(wèn)題,如果Stream里恰好有雙引號(hào)或單引號(hào)時(shí),就要用 很多的“\”分隔符,容易出錯(cuò),可讀性不太法,不太方便,事實(shí)上,JQuery有個(gè)create new element的功能。只要給$的輸入?yún)?shù)包含<tag ... >時(shí),JQuery就不會(huì)把它理解成一個(gè)selector expression, 而是把它理解成一個(gè)生成新的DOM element 。以下是一個(gè)code sample.
復(fù)制代碼 代碼如下:

$(xml).find("step").each(function(){
var stepimagepath=$(this).text();
var stepdescription=$(this).attr("description");
additem(stepimagepath, stepdescription);
});
function additem(stepimagepath, stepdescription){
$('.ad-thumbs ul').append(
$('<li>').append(
$('<a>').attr('href', stepimagepath).append(
$('<img>').attr('src', stepimagepath).attr('alt', stepdescription)
)));
}

生成的HTML section 如下:
復(fù)制代碼 代碼如下:

<ul class="ad-thumb-list">
<li><a href="images/1.jpg"><img src="images/1.jpg" alt="step21 description"></a></li>
<li><a href="images/1.jpg"><img src="images/1.jpg" alt="step21 description"></a></li>
<li><a href="images/1.jpg"><img src="images/1.jpg" alt="step21 description"></a></li>
<li><a href="images/1.jpg"><img src="images/1.jpg" alt="step21 description"></a></li>
<li><a href="images/1.jpg"><img src="images/1.jpg" alt="step21 description"></a></li>
</ul>

3總結(jié)
本文介紹了在ASP.NET中使用Ajax可能會(huì)碰到的幾個(gè)關(guān)鍵點(diǎn)。 C#生成XML流,AJAX實(shí)現(xiàn)(Server端與Client端), Global 變量,與及如果用一種比較好的方法動(dòng)態(tài)插入HTML 元素.
4參考
http://www.dotnetperls.com/global-variables-aspnet
http://api.jquery.com/jQuery/

相關(guān)文章

  • jQuery實(shí)現(xiàn)全選反選操作案例

    jQuery實(shí)現(xiàn)全選反選操作案例

    這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)全選操作案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JQuery查找子元素find()和遍歷集合each的方法總結(jié)

    JQuery查找子元素find()和遍歷集合each的方法總結(jié)

    下面小編就為大家?guī)?lái)一篇JQuery查找子元素find()和遍歷集合each的方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • jQuery修改li下的樣式以及l(fā)i下的img的src的值的方法

    jQuery修改li下的樣式以及l(fā)i下的img的src的值的方法

    這篇文章主要為大家介紹了jQuery如何修改li下的樣式,以及修改li下的img的src的值,示例代碼很簡(jiǎn)單,一看就會(huì)
    2014-11-11
  • jquery實(shí)現(xiàn)全屏滾動(dòng)效果

    jquery實(shí)現(xiàn)全屏滾動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)全屏滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • jQuery表單美化插件jqTransform使用詳解

    jQuery表單美化插件jqTransform使用詳解

    這里主要是jQuery美化部分的實(shí)例,美化對(duì)象為文本框、密碼框、文本域、Select下拉框、按鈕等,有了這些示例,美化其它的表單元素應(yīng)該不是大問(wèn)題。
    2015-04-04
  • jQuery中noconflict函數(shù)的實(shí)現(xiàn)原理分解

    jQuery中noconflict函數(shù)的實(shí)現(xiàn)原理分解

    這篇文章主要介紹了jQuery中noconflict函數(shù)的實(shí)現(xiàn)原理分解,noconflict是用來(lái)防止變量沖突的,本文就分解了它的實(shí)現(xiàn)原理,并分析了它的實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2015-02-02
  • Jquery圖片延遲加載插件jquery.lazyload.js的使用方法

    Jquery圖片延遲加載插件jquery.lazyload.js的使用方法

    這篇文章主要介紹了Jquery圖片延遲加載插件jquery.lazyload.js的使用方法,需要的朋友可以參考下
    2014-05-05
  • jQuery Plupload上傳插件的使用

    jQuery Plupload上傳插件的使用

    這篇文章主要介紹了 jQuery Plupload上傳插件的使用詳解,需要的朋友可以參考下
    2017-04-04
  • jQuery分頁(yè)插件jquery.pagination.js使用方法解析

    jQuery分頁(yè)插件jquery.pagination.js使用方法解析

    這篇文章主要為大家詳細(xì)解析了jQuery分頁(yè)插件jquery.pagination使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • JQuery 選擇器、過(guò)濾器介紹

    JQuery 選擇器、過(guò)濾器介紹

    使用過(guò)AJAX技術(shù)的人都知道大名鼎鼎的JQuery。雖然我來(lái)學(xué)習(xí)之前有看過(guò)AJAX的視頻,但那時(shí)對(duì)WEB應(yīng)用這個(gè)東西還比較模糊,不清楚HTML、JSP與Servlet是怎么工作的,甚至不知道JQuery包裝的是什么東西。
    2011-02-02

最新評(píng)論

三原县| 弥勒县| 舞钢市| 磴口县| 白城市| 桂林市| 清原| 綦江县| 德安县| 营山县| 太白县| 彰武县| 方正县| 夹江县| 广汉市| 韶关市| 宜宾县| 靖西县| 平远县| 海晏县| 收藏| 涿州市| 南投市| 玉树县| 宜良县| 巴东县| 沈丘县| 宁德市| 新平| 城固县| 隆安县| 邹平县| 五大连池市| 正蓝旗| 崇信县| 兴宁市| 抚远县| 宜兰市| 沅陵县| 法库县| 简阳市|