作者kuan0817 ()
看板Ajax
标题[问题] 暂停javascript程式
时间Mon Apr 20 16:22:03 2015
目前我正在做一个project, 会用到google direction API
以及geometry library (主要是用里面的某一个islocatededge function)
大概介绍一下project目的:
跑回圈, 每次送一对起终点, 然後用directionservice算route
然後用isLocationOnEdge来看是否我在意的一些路口有在route上
因为google在query数量上有限制, 因此我每两秒才送一个query
(我目前用settimeout)
但发现程式执行到大约270左右个query时, gogole就开时回传over limit query的status
因此想要动态延长等待的时间,
但因为我的回圈中的setimeout是类似这样做
function doSetTimeout(a,b) {
setTimeout(function() {
getRoute(a, b); //抓路口是否在route上的function
}, times*2000);
times++
}
感觉像是一开始就把query都ready to send out, 只是隔两秒才会真正发送出去
请问有办法动态调整等待时间吗?
或是让程式暂停
在if (status == google.maps.DirectionsStatus.OVER_QUERY_LIMIT) 时
我查过似乎javascript没有这种功能?)
或是有其他更好的作法呢?
谢谢!
ˇ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 68.40.198.253
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1429518128.A.186.html
1F:→ mmis1000: 做成一个query list阿,然後用另一个setInterval定时执 04/20 17:18
2F:→ mmis1000: 行,只要列表里有东西就执行这样 04/20 17:19
3F:→ mmis1000: 然後如果回传值有问题,就暂停住,等个几秒再继续 04/20 17:30
5F:→ mmis1000: 如果要async还要再做些手脚,这个是async task的版本 04/20 17:42
6F:→ mmis1000: 更正sync task 04/20 17:42
7F:→ tooto1985: callback + setTimeout可以达成,但要像alert停住不行 04/30 23:44