JS难道是非线性运行程序的?
我有一个函数是这样的:function changes(nn,mm) {
if (nn1!=0){
alert('txs2.asp?id='+nn1+mrow) //这是第一个alert
send_request('txs2.asp?id='+nn1) //这是第一个请求
}
alert('txs2.asp?id='+nn) //这是第二个alert
nn1=nn
mrow=mm
send_request('txs2.asp?id='+nn) //这是第二个请求
}
那二个alert是我调试时加进去的,当我加了这二个alert时,程序安我的要求一切运行正常。
但我把二个alert删除时,程序就不对了。
说明一下
我的是用AJAX来展开表格(类似于菜单),我需要在展开新的表格时把原来展开的表格合上。前一个请求就是先判断有格展开不,有就先去合上。
第二个请求是展开新的表格。nn是请求的内容ID号,mm是表格的行号.
如果是线性运行我的程序,那么我的思路一点都没错,这可以通过加了alert后一切正常来证明。特别是第二个alert如果把它删除,或改成以下:
function changes(nn,mm) {
if (nn1!=0){
alert('txs2.asp?id='+nn1+mrow) //这是第一个alert
send_request('txs2.asp?id='+nn1) //这是第一个请求
}
nn1=nn
mrow=mm
alert('txs2.asp?id='+nn) //这是第二个alert,现在把它移到下面。
send_request('txs2.asp?id='+nn) //这是第二个请求
}
这时第一个请求反回的内容是第二个请求内容。合上的位置也成了第二个的位置(原本是指定展开的位置)。也就是:
nn1=nn
mrow=mm
这二条在第一个请求运行之前它就运行了。
怎么会这样?我该如何解决这种问题?
[此贴子已经被作者于2007-11-14 8:56:35编辑过]