把以前的贴结了,再问下。还是不是很明白第一个问题:分页显示数据库里QueryString的一个问题按照我的理解Request.QueryString('page')得到的是page=后面的字符串的值,为什么后面还要加“item”呢?谁能帮忙解释一下部分代码如下:rs.PageSize=5;
var page=Request.QueryString('page').item; //谁来帮忙解释一下这个“item”
if (page==null)
page=1;
page=parseInt(page);
rs.AbsolutePage=page;
for (var i=0; i<rs.PageSize; i++)
{
if (rs.EOF)
break;
Response.Write('<tr>');
Response.Write('<td>'+rs('student_id')+'</td>');
Response.Write('<td>'+rs('student_name')+'</td>');
Response.Write('<td>'+rs('student_sex')+'</td>');
Response.Write('<td>'+rs('student_age')+'</td>');
Response.Write('<td>'+rs('student_major')+'</td>');
Response.Write('</tr>');
rs.MoveNext();
}
Response.Write('<tr style="height:25px;">');
Response.Write('<td colspan="5">');
if (page!=1)
{
Response.Write('<a href="15-13.asp?page=1">第一页</a>&nbsp;&nbsp;');
Response.Write('<a href="15-13.asp?page='+(page-1)+'">上一页</a>&nbsp;&nbsp;');
}
if (page!=rs.PageCount)
{
Response.Write('<a href="15-13.asp?page='+(page+1)+'">下一页</a>&nbsp;&nbsp;');
Response.Write('<a href="15-13.asp?page='+rs.PageCount+'">最后一页</a>&nbsp;&nbsp;');
}
Response.Write('页数:<span style="color:red;">'+page+'/'+rs.PageCount+'</span>')
Response.Write('</td>');
Response.Write('</tr>');====================================第二个问题:onreadystatechange比如说下面这段代码:var XMLHttp=new ActiveXObject('Microsoft.XMLHTTP');
function doHttpReadyStateChange()
{
if (XMLHttp.readyState==4)
alert('Done');
}
function send()
{
XMLHttp.onreadystatechange=doHttpReadyStateChange;
XMLHttp.open('GET','http://localhost/sample.XML',true);
XMLHttp.send();
}
send();依照我的理解是这样的,XMLHttp.onreadystatechange=doHttpReadyStateChange;这个语句写在open之前,所以readyState的值是0,那么onreadystatechange是不会等于4的,但是结果确实会弹出对话框,也就是说他随着readyState的变化而被调用,感觉就像事件一样;那么我就理解成这句话就像是声明一样,所以要放在open()与send()前面。但是我觉得这样理解也不是很对,所以来问下这个属性到底是怎么样的,望赐教。

解决方案 »

  1.   

    第一个不知道,
    第二个XMLHttp.onreadystatechange是一个方法回调的句柄啊,不是感觉像一个事件一样,他本来就是一个异步回调的事件。
    也不一定要放到open和send前面了,确切的说只要放在send前面就行了。
      

  2.   


    var page=Request.QueryString('page').item;应该是page对象中的一个属性吧
    XMLHttp.onreadystatechange大多数是xmlHttp.readyState=4,xmlHttp.status=200
    才能返回正常的结果,一般会放在send前面,open后面比较好;
      

  3.   

    TO symbol_bc:去查了回调函数的一些东西,大概是明白了。我觉得其实还是应该放在open前面,因为当readyState==0时,只是初始化XMLHttpRequest对象,并没有调用open。但因为一般onreadystatechange用于readyState==4,所以在send前面就可以了。