<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乱码久久精品蜜桃| 成年网站免费入口在线观看| 四虎影在线永久免费观看| 亚洲av乱码中文一区二区三区 | 国产在线不卡免费播放| 亚洲.国产.欧美一区二区三区| 国产成人无码免费看视频软件| 亚洲一级片在线播放| 成人黄页网站免费观看大全| 亚洲欧美成人综合久久久| 国产免费爽爽视频免费可以看| 偷自拍亚洲视频在线观看| 亚洲А∨精品天堂在线| 国产免费福利体检区久久| 亚洲AV日韩精品久久久久| 在线永久看片免费的视频| 亚洲色在线无码国产精品不卡| 日本19禁啪啪无遮挡免费动图| 老司机午夜免费视频| 亚洲日韩国产精品第一页一区| 久久免费视频网站| 亚洲国产精品免费在线观看| 在线播放高清国语自产拍免费 | 本道天堂成在人线av无码免费| 国产亚洲真人做受在线观看| 在线看片免费人成视久网| 中文日韩亚洲欧美制服| 亚洲人成网站色在线入口| 免费看少妇高潮成人片| 亚洲专区一路线二| 日韩亚洲精品福利| 亚洲视频在线观看免费| 亚洲精品久久久久无码AV片软件| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲网址在线观看| 四虎影在线永久免费四虎地址8848aa | 国产网站免费观看| 免费国产黄网站在线观看| 亚洲国产成人无码AV在线影院|