作者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/m.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