<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-86  評論-767  文章-3  trackbacks-3

    我一直很推崇MSN Space的服務,對其相冊服務和皮膚一直情有獨鐘。國內的播客,我首選MSN Space。也可能,MSN Space沒有那么多炒作。

    恩,言歸正傳。幾天來研究一下MSN Space的Ajax應用。典型的,其應用主要體現在:網絡日志的評論、固定鏈接、引用記錄、自定義列表上面。了解Ajax之前,一直對其數據的獲取方式很好奇。現在,大概略知一二了。如下圖所示。
    space-article.jpg
    space-comment.jpg
    space-link.jpg
    space-list.jpg
    space-track.jpg
    對于共享空間首頁,“添加評論”、“閱讀評論”、“固定鏈接”、“引用通告”主要用到的Javascript函數為:OpenSection(section, entryid, bNewComment, bTriedPassportRefresh, bAreNewCommentsAllowed) ,其通過第一個參數section判斷各種操作類別,然后從服務器獲取數據,在顯示在相應的DIV浮動層中。
    其使用Ajax獲取數據的關鍵代碼由Javascript函數GetBlogActivity(entryid, item, otherformfields, bTriedRefresh) 提供。其代碼如下所示:
     function GetBlogActivity(entryid, item, otherformfields, bTriedRefresh)
     {
     var response = "";
     var fException = false;
     eval ('try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {xmlhttp = null;}');
     if (xmlhttp != null)
     {
     try{
     xmlhttp.Open("POST", BlogJSPostUrl, false);
     var strA = "handle="+ entryid;
     strA += "&blogitem=" + item;
     strA += "&" + BlogJSBlogPartParam;
     strA += otherformfields;
     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
     xmlhttp.Send(strA);
     }catch(e){
     fException = true;
     }
     if(fException){
     if(bTriedRefresh){
     //exception after trying passport refresh, stop here to avoid infinite loop
     response = "error";
     }else{
     //build the response - an iframe that will load up and refresh passport credentials
     var timer = setTimeout(DisplayContentLoadError(item, entryid), 10000); //fail in 10s if not cleared
     var iframeString = "<iframe src=\"/PassportRefresh.aspx?id=" + entryid + "&function=get&timer=" + timer + "&item=" + item + "&formfields=" + otherformfields.replace(/&/g, "%26") + "\" />";
     var divID = "ppRefresh" + item + entryid;
     if(document.getElementById(divID)){
     response = iframeString;
     document.getElementById(divID).style.display = "none";
     }else{
     response = "<div style=\"display:none\" id=\"" + divID + "\">" + iframeString + "</div>";
     }
     }
     }else{
     if(xmlhttp.status != 200){
     response = "error";
     }else{
     response = xmlhttp.responseText;
     }
     }
     }
     return response;
     }

    很容易看到,其使用了XMLHttpRequest的同步請求方式。這就是為什么每次單擊“閱讀評論”的時候頁面都需要停頓一下。 xmlhttp.Open("POST", BlogJSPostUrl, false);中所用到的BlogJSPostUrl定義在共享空間的首頁,其余上述兩個函數定義在BlogJS.js文件中。

    《Ajax開發詳解》的“模擬MSN Space”一章將有更加詳細的闡述。

    posted on 2006-03-09 09:49 eamoi 閱讀(5163) 評論(3)  編輯  收藏 所屬分類: AJAX

    評論:
    # re: [匯總]我所看到的Ajax應用之MSN Space 2006-05-07 19:26 | 李文廣
    很高興能成為你的讀者,今天我買了你的《AJAX開發精要》,寫得真好!……
    很及時,謝謝你。
    我想在你的博客里最好多一點引用這些技術,這樣能讓人們有真實的感受
    ^☉^
    我的QQ:280380365
    C#開發群:14363918
    歡迎任何人加我  回復  更多評論
      
    # re: [匯總]我所看到的Ajax應用之MSN Space 2006-05-07 19:34 | 李文廣
      順便說說,我也在開發一系列的書,已出版的有九個軟件的快捷鍵卡與及一本叫《48分鐘學會五筆》的書,而現在我是用AJAX來開發各種隨網軟件,所以我們是同行^﹀^。雖然學編程剛開始,但我已經在寫一本叫《完全用中文學HTML》的書了。所以有交流的需求!……
      順祝你的書是最好買的AJAX書。至少我認為是這樣,之前買了一本AJAX基礎入門,是在北京的地壇五月三日的書展買的,雖然很好,但怎么也是外國人的思想,與我們有一段距離,所以又痛下決心買了你的書,發覺真的沒有買錯,寫得好極了,連HTML、JAVASCRIPT、DOM也有教,真不錯。建議再做幾個視頻教程,與及相關的大型應用軟件,如象OBLOG、DVBBS等的東西,我想更有說服力,來宣傳你的書也有好處,祝你好動……
      www.ddh4.com 快捷鍵網  回復  更多評論
      
    # re: [匯總]我所看到的Ajax應用之MSN Space 2006-05-19 17:11 | xcb
    cool  回復  更多評論
      
    主站蜘蛛池模板: 三上悠亚在线观看免费| 亚洲av日韩av综合| jizz免费在线观看| 亚洲伊人久久综合中文成人网| 亚洲av无码兔费综合| 日本高清免费aaaaa大片视频| 亚洲精品成a人在线观看☆| 蜜桃视频在线观看免费网址入口| 亚洲AV无码一区二区三区人| 日韩免费精品视频| 亚洲中文字幕久久久一区| 免费看的一级毛片| 日日躁狠狠躁狠狠爱免费视频| 亚洲精品偷拍视频免费观看| 一区二区三区免费视频观看| 伊人久久综在合线亚洲91| 青柠影视在线观看免费| 久久久影院亚洲精品| xxxx日本免费| 亚洲av成人无码网站…| 亚洲成?Ⅴ人在线观看无码| 中文字幕久无码免费久久| 午夜亚洲www湿好大| 免费看成人AA片无码视频羞羞网| jiz zz在亚洲| 国产L精品国产亚洲区久久| 国产精品视频白浆免费视频| 亚洲人成片在线观看| 国产麻豆免费观看91| 成人无码精品1区2区3区免费看 | 91精品免费不卡在线观看| 亚洲毛片基地4455ww| 亚洲?V无码乱码国产精品 | 免费一区二区无码视频在线播放| 国产亚洲精品高清在线| 中文字幕免费视频一| 亚洲人成色4444在线观看| 亚洲一区二区女搞男| www.999精品视频观看免费| 国产精品1024在线永久免费| 亚洲人成在线精品|