Archive for 九月 1st, 2010

AJAX返回多个数据

网页上需要按一个按钮后多个数据进行刷新,也就是说要通过AJAX返回多个数据并在页面上显示。比较笨的办法一个返回数据新建一个函数,相当于每个数据都通过AJAX进行一次提交,结果常见的错误就是函数中的变量名一致导致提交错误。即使正确,当多次刷新后,往往会出现数据冲突,比如A数据出现在B数据的地方。这个主要是因为获取数据都是通过if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")的语句来判断的,但是多个返回容易产生冲突,前一个刚判断状态后一个数据就来了,结果后一个数据代替了前一个数据。

比较好的方法就是还是一次提交,在PHP页面上同时处理并按照一定格式归并在一起,比如:数据1|数据2|数据3|数据4……。然后再调用返回 数据的时候在JS代码中把数据分割开来,在将数据放入该数据本应该存放的位置。

处理代码如下:

1
2
3
4
5
6
7
8
9
10
11
function test()/*通过AJAX,检验输入数据的格式并返回相应的值*/
{
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
        var str=xmlHttp.responseText
        var reback=new Array()
        reback=str.split("-")
        document.getElementById("data1").value=reback[0]
        document.getElementById("data2").value=reback[1]
    }
}

圆通快递与EMS的对比

公司要发快递,想到之前收到很多快递都是圆通的,于是想尝试下圆通快递。

打开圆通快递的网站,找了半天终于找到个联系电话,打电话过去。

“上海XX区请拨打号码XXXX”

于是拨打了XXXX号码,结果回复到

“XX区YY路请拨打号码XXYY”

于是拨打了XXXX号码,结果回复到

“XX区YY路ZZ号请拨打号码XXZZ”

按照我的性格这个时候一定是把电话机挂了,脱口而出:个婊子养的。

再看EMS

上EMS网站找到电话,拨打客服问我发送到哪里?以前有发送过么?电话是多少?

我报了下我的手机后,一个小时后快递就来取件了。

亮点总在最后

小明一岁时,他第一次喊爷爷,于是爷爷死了。没多久他第一次喊奶奶,于是奶奶死了。再后来,他喊爸爸,于是隔壁的王木匠死了。

一位清华博士指出:这个笑话的bug在于,喊爷爷时应该是隔壁王木匠的爹死掉。

而一位上海交大的同学指出:隔壁的王木匠,很有可能是该爷爷失散多年的儿子。