jsbridge 同一个接口,js 多次连续调用,只回调最后一次的结果,有人遇到过吗

JavaScript021

jsbridge 同一个接口,js 多次连续调用,只回调最后一次的结果,有人遇到过吗,第1张

你应该在第一次调用并处理完回调结果后再发出第二次调用请求,依此类推,而不是一股脑儿把全部请求一次性发出,这样的话服务器只会处理最后一次的请求的。这是http协议的特性所决定的,服务器在同一时间只会与同一个session保持一个连接,你通过这个连接向服务器发出请求,服务器处理完毕再按原路返回数据,本次会话即结束,然后你可以再次发出请求。如果在服务器尚未处理完毕就再次发起请求,服务器就会认为你要把上一次的请求作废,然后它就会转而处理本次请求,这样最终返回的就只有最后那次请求的处理结果了。如果不是这样,那么你一次性发出1000个调用请求,服务器就要和你的浏览器建立1000个连接,这样的话服务器就只为你一个人服务啦,其他人怎么活?

所以像这样的异步调用接口,是不能够多次连续不间断地调用的,必须处理完一个再进行下一次调用。或者如果接口允许同步调用,也可以选择同步调用的方式,这样的话就可以放心地一次性把多个调用请求发出了,因为js会自动帮你排队处理的,所付出的代价就是页面会出现卡顿现象。

设一个全局变量就好了。

<SCRIPT type=text/javascript>

var myDay

window.onload=function()

{

myDay=getDate()

}

function getDate()

{

var d = new Date()

var vYear = d.getFullYear()

var vMon = d.getMonth() + 1

var vDay = d.getDate()

var vMon = vMon <10 ? "0" + vMon : vMon)

var vDay = vDay <10 ? "0" + vDay : vDay

var time=vYear+"-"+vMon+"-"+vDay

return time

}

</SCRIPT>

这样就可以随时用 myDay这个变量了

PS: 方法直接复制楼上的