Leona+ Dream for future

1Jan/090

Xmlhttp学习笔记 (2) 基本操作

Xmlhttp里面常用的函数和属性无非就这几个:

open(method, url, async, user, password)

其中method的值多数为Get或者Post(不区分大小写)用于从服务器获取数据和向服务器发送数据,还有Head, Put, Delete之类的,基本不会用到;url是实际要访问的url地址,比如http://leonax.net;async的值为true或者false,表示是否要以异步模式(即非阻塞模式)进行通信;user和password为访问url所需的用户名和密码,一般都是省略掉的。

open函数只是初始化一下Xmlhttp对象,它并不会向url所对应的服务器发送数据。比较奇怪的是,W3C的规范中async的缺省值为true,也就是说,以下代码会以异步模式运行:

1
2
3
var xmlhttp = new ActiveXObject("Msxml2.Xmlhttp");
xmlhttp.open("Get", "http://leonax.net");
xmlhttp.send();

Msxml3和IE的XmlHttpRequest遵循了这一规范,而Msxml6中的缺省值为false。既然缺省值都为true,为什么不把参数名改成sync呢?在Javascript(以及各种脚本语言)中,缺省参数一般为null,而null和false等价,所以把缺省值定为true实在是太令人费解了。

send(text)

真正把数据发出去的是这个函数。text可以是任何值,它会被当作数据包的正文发给服务器。

在open之前调用send会报错。

以异步模式open之后,send函数会立刻返回;相反,在同步模式的时候,它会等到接收完服务器所有的回应才返回。

responseText

这是一个属性,在收到服务器的回复之后,可以通过它来查看回复的正文部分。如:

1
2
3
4
var xmlhttp = new ActiveXObject("Msxml2.Xmlhttp");
xmlhttp.open("Get", "http://leonax.net", false);
xmlhttp.send();
alert(xmlhttp.responseText);

将显示出一个很简易的Html :P。在未完全收到回复之前,responseText返回一个空字符串。

Filed under: Network No Comments
24Dec/080

Xmlhttp学习笔记 (1) 创建

Xmlhttp是一个用于在网页中读取服务器数据的组件。(注:尽管7个字母全都是缩写,我还是觉得“Xmlhttp”比“XMLHTTP”看上去顺眼。)最初是由微软开发用来访问Outlook Web Access 2000的。在目前流行的IE版本中都支持(从IE5到IE8),只不过问题是这个东东目前还没有成为标准(W3C正在讨论,只有一个draft可作参考),于是就有了万恶的浏览器兼容性的问题。常见的生成Xmlhttp对象的Javascript是这么写的:

1
2
3
4
5
6
7
function NewXmlHttpRequest() {
    try{ return new window.XMLHttpRequest(); } catch(e) {} //standard API
    try{ return new ActiveXObject("Msxml2.Xmlhttp.6.0"); } catch(e) {}
    try{ return new ActiveXObject("Msxml2.Xmlhttp"); } catch(e) {}
    //try other browser API
    throw new Error("XmlHttpRequest is not supported.");
}

在IE7之前,IE中的Xmlhttp组件都是由Msxml提供的。尽管Msxml目前有很多版本(从3.0到6.0都是被支持的),但只有3.0是从Win2000到Vista都带的,6.0只在XP SP3和Vista以之后的操作系统中有,而且3.0有个好处是创建的时候只要写"Msxml.Xmlhttp"即可,不用像6.0一样加上后缀的版本号。当然6.0在安全和性能方面都要比3.0好,大有取而代之的趋势。

Filed under: Network No Comments
7Jul/070

域名设置真麻烦

本来想把原来的bibtx.org的DNS直接设置到godaddy的server上,设置完之后,等了20几个小时,发现域名指向的IP一直在变,一会指向godaddy,一会指向原服务器,很郁闷,而且百思不得其解。后来偶然用whois查了一下bibtx.org,发现DNS列表里有4个服务器,前2个是原服务器的,后4个是godaddy的,于是明白了,由于代理商的缘故,前2个DNS应该是不能改的,太挫了。

后来想到域名转移到godaddy这里,godaddy要我提供一个Authorization Code的东西,查了一下中文叫“域名转移密码”,然后顺便发现网上有人说新网不提供域名转出服务,=.=,不就是个域名么,干啥这么想不开……

然后就重新注册了一个域名bibtx.com,然后在原来的空间做了重定向,暂时解决了这个问题。 大不了等bibtx.org到期了再在godaddy注册下,新网有必要做得这么挫么……

Filed under: Network No Comments
2Mar/070

竞争带来的大麻烦

突然间发现自己有了OrkutFriendsterMyspaceWallop的帐号,麻烦也随之而来……

Friendster是我最早接触到的,由一个国外的网友邀请而注册,但是由于我一直都在用长宽,上国外的网站速度很慢,虽然注册了帐号,但也一直闲置着,直到换了ADSL之后才开始维护。

知道Orkut是因为Google,在搜索Google的服务的时候搜到了它,可惜Orkut也是要靠邀请才能注册的,一直想注册但又没有门路,直到它开放注册之后,才申请到帐号。有关Orkut的产生还有个趣闻,Google当时想在SNS方向发展,最初是想收购Friendster,但是被拒绝,于是才自己做了Orkut。

Wallop最早在别人的Blog中看到过,但一直不知道是什么东东,它好像一开始公测过一段时间,后来关了,删了所有帐号,然后又开了,很神秘的样子。直到看了介绍SNS的文章才了解。加入Wallop是由于很偶然的机会,某人在Blog上说可以提供邀请,于是留了言,然后就收到了邀请。不过加入之后至今没有维护过=.=

Myspace也是看了相关文章才知道的,好在它是开放注册的。

不知不觉中,4家主要的SNS网站都注册了。于是麻烦的事情也来了。

首先,Wallop会每周寄来一份digest,主要是其它人的Wallop更新之类的;Friendster也会定期寄来更新,并且某些特殊的事件还会寄来额外的邮件。

其它,有一些人会通过Myspace寄一些类似交友的邮件来,最初好奇,点进去看了,看上去像是搞色情服务的,页面做得很粗糙,就关了,后来Myspace寄来的邮件一律删除。

最重要的一点,除了Wallop之外,其它三个网站都要填写详细的诸如兴趣爱好身高体重信仰等等的信息,相当的繁琐。除Orkut之外,其它三个网站都提供了Blog服务,但是又不能把Blog的页面链接到我自己的Blog,难道要我一文四发?希望他们可以提供rss读取之类的服务,这样能方便拥有其它Blog服务的用户。

最后,需要邀请的同学可以留言(Wallop的邀请需要上传照片,我手头没好看的照片,所以也就没有邀请=.=),仅限认识的,留言中请留下线索。

Filed under: Network No Comments