Ajax应用案例之MSN Space

ajax

我一直很推崇MSN Space的服务,对其相册服务和皮肤一直情有独钟。国内的播客,我首选MSN Space。也可能,MSN Space没有那么多炒作。 

恩,言归正传。几天来研究一下MSN Space的Ajax应用。典型的,其应用主要体现在:网络日志的评论、固定链接、引用记录、自定义列表上面。了解Ajax之前,一直对其数据的获取方式很好奇。现在,大概略知一二了。如下图所示。 
对于共享空间首页,“添加评论”、“阅读评论”、“固定链接”、“引用通告”主要用到的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”一章将有更加详细的阐述。

时间: 2024-11-02 11:17:16

Ajax应用案例之MSN Space的相关文章

&amp;#106avascript实现类似google和msn space的拖拽

google      最近在网上看到一些朋友到处找类似于google的个性主页和msn space的拖拽实现,在下正好也找到了一个例子.但是问题比较多.我将其改写并完善,建立了一个通用的函数.具体的函数实现如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>BlackSoul的拖拽D

轻松搭建你的个性化MSN Space

MSN Space是一个网络空间,只需几分钟,你就即可创建自己的MSN Space,可以在其中发布自己的感想.照片.音频和感兴趣的内容,从而与其他人进行交流.但MSN Spaces自身的功能还是有限,要想使你的空间更有个性,还需要借助其它工具才行.你想拥有自己个性化Msn Space吗?那就请跟我来吧! 一.创建空间 1.申请自己的Msn Space 访问Msn Space首页:http://spaces.msn.com(如图1) 单击"创建您的共享空间",进入图2显示的界面,如果你已

初用MSN Space技巧

MSN Space技巧-起步 1. 如何复制图片 在BLOG里面发表带图片的日志:在你选中的图片上点右键.选择复制.然后在你的日志发表编辑框相应的地方点,Ctrl+V粘贴,即可! 说明下.只可以复制网络上的图片的哦,你电脑上的图片是不可以 直接发表在上面的! 2 . 编辑网络日志项 单击"网络日志"选项卡/单击要编辑的项/进行所需更改/若要向您的网络日志发布此项,请单击"发布项"/您可以使用一些关键词组合,帮助您的网络日志项获得您想要的外观/用 SHIFT + EN

超级个性化!看我的MSN space有多酷

喜欢MSN的 网友们不少都开通了自己的Msn Space,还有些网友给自己的MSN空间添加了很多个性化的东西,如http://www.aliyun.com/zixun/aggregation/34217.html">背景音乐.背景颜色等, 那么你是不是很想将自己的MSN Space空间打造的更加个性呢?如果我们使用了MSN Space PowerToy模板,就可以非常方便的为自己的Msn Space空间添加个性功能. 小知识:MSN Space PowerToy是MSN Space开发小组

jQuery Address全站 AJAX 完整案例详解

本文详细介绍如何利用 jQuery 框架以及 jQuery Address 插件实现最基本的全站 AJAX 动态加载页面内容的功能的方法. 案例目标 以常见基本结构的网站为案例,实现全站链接 AJAX 加载页面内容,不刷新页面,不影响seo/seo.html" target="_blank">搜索引擎收录.同时兼容 WordPress. 功能实现 需要提供给 jQuery Address 的有三个常量,分别是:  代码如下 复制代码 var baseurl       

Ajax应用案例之土豆网

ajax 网易邮箱:http://mail.163.com  Google Maps:http://maps.google.com  Google Suggest:http://www.google.com/webhp?complete=1&hl=en  土豆网:http://www.toodou.com   其余将陆续添加.  1.土豆网:  在土豆网注册的时候,发现一输入用户昵称,其文本框末端有一图标快速闪过,其下方给出"该昵称已经被占用"的提示.恩,有点Ajax的影子. 

项目中的一个JQuery ajax实现案例

/**  * brief 这些代码用于在线制图中 attention author <list of authors> <date> begin modify by  * null  */ /** 获取参数并拼接参数 */ var params = ""; /** 判断是否选择了要制作的图形产品 */ function judgeIfSelectedProduct() {  var b = false;  var length = $("#servic

一个类msn space的case manage system

数据结构和add页面 就不写了看select救出来了 <VBSCRIPT">%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!--#include file="Connections/conn.asp" --><%Dim Recordset1Dim Recordset1_numRows Set Recordset1 = Server.CreateObject("

Ajax $.getJSON案例详解_AJAX相关

复制代码 代码如下: <script type="text/javascript"> function pageIndexChanged() { var url = "/OrderList/Lists"; var where = ""; @*location.href = "@this.Url.Action("List")?pageindex=" + $("#pager").